1 package com.hwloc.lstopo;
2 
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.graphics.Color;
6 import android.net.Uri;
7 import android.os.Bundle;
8 import android.util.DisplayMetrics;
9 import android.view.View;
10 import android.widget.Button;
11 import android.widget.LinearLayout;
12 import android.widget.TextView;
13 
14 import static android.view.View.TEXT_ALIGNMENT_CENTER;
15 
16 public class About extends Activity {
17 
18     private final String github = "https://github.com/open-mpi/hwloc";
19     private final String website = "https://www.open-mpi.org/projects/hwloc";
20     private final String ci = "https://ci.inria.fr/hwloc/job/extended/job/master";
21 
22 
23     @Override
onCreate(Bundle savedInstanceState)24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26 
27         setContentView(R.layout.about);
28 
29         // Set windows size
30         DisplayMetrics dm = new DisplayMetrics();
31         getWindowManager().getDefaultDisplay().getMetrics(dm);
32         int width = dm.widthPixels;
33         int height = dm.heightPixels;
34         getWindow().setLayout((int) (width * 0.8), (int) (height * 0.5));
35 
36         TextView tvAppName = findViewById(R.id.app_name);
37         tvAppName.setTextSize(40);
38 
39         String versionName = BuildConfig.VERSION_NAME;
40         TextView tvVersion = findViewById(R.id.version);
41         tvVersion.setText("Version: " + versionName);
42         tvVersion.setTextSize(20);
43 
44         TextView tvWebsite = findViewById(R.id.open_mpi);
45         tvWebsite.setText("Project Website: ");
46         tvWebsite.setTextSize(20);
47 
48         TextView tvWebsiteLink = findViewById(R.id.open_mpi_link);
49         tvWebsiteLink.setText(website);
50         tvWebsiteLink.setTextColor(Color.parseColor("#4295f7"));
51         tvWebsiteLink.setTextAlignment(TEXT_ALIGNMENT_CENTER);
52         tvWebsiteLink.setTextSize(20);
53         tvWebsiteLink.setOnClickListener(new View.OnClickListener() {
54             @Override
55             public void onClick(View v) {
56                 goToLink(website);
57             }
58         });
59 
60         TextView tvGithub = findViewById(R.id.github);
61         tvGithub.setText("GitHub Repository: ");
62         tvGithub.setTextSize(20);
63 
64         TextView tvGithubLink = findViewById(R.id.github_link);
65         tvGithubLink.setText(github);
66         tvGithubLink.setTextColor(Color.parseColor("#4295f7"));
67         tvGithubLink.setTextAlignment(TEXT_ALIGNMENT_CENTER);
68         tvGithubLink.setTextSize(20);
69         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
70         params.setMargins(0,0,0,dpToPx(30));
71         tvGithubLink.setLayoutParams(params);
72         tvGithubLink.setOnClickListener(new View.OnClickListener() {
73             @Override
74             public void onClick(View v) {
75                 goToLink(github);
76             }
77         });
78 
79         LinearLayout.LayoutParams paramsDebug = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
80         paramsDebug.setMargins(0,0,0,dpToPx(10));
81         tvGithubLink.setLayoutParams(paramsDebug);
82 
83         TextView tvCi = findViewById(R.id.ci);
84         tvCi.setText("CI with latest APKs: ");
85         tvCi.setTextSize(20);
86 
87         TextView tvCiLink = findViewById(R.id.ci_link);
88         tvCiLink.setText(ci);
89         tvCiLink.setTextColor(Color.parseColor("#4295f7"));
90         tvCiLink.setTextAlignment(TEXT_ALIGNMENT_CENTER);
91         tvCiLink.setTextSize(20);
92         tvCiLink.setOnClickListener(new View.OnClickListener() {
93             @Override
94             public void onClick(View v) {
95                 goToLink(ci);
96             }
97         });
98 
99         Button bClose = findViewById(R.id.close);
100         bClose.setOnClickListener(new View.OnClickListener() {
101             @Override
102             public void onClick(View v) {
103                 finish();
104             }
105         });
106     }
107 
goToLink(String url)108     void goToLink(String url){
109         Uri uri = Uri.parse(url);
110         Intent intent = new Intent(Intent.ACTION_VIEW, uri);
111         startActivity(intent);
112     }
113 
dpToPx(int dp)114     public int dpToPx(int dp){
115         return (int) (dp * ((float) getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT));
116     }
117 }
118