1
+ package xzr .hkf ;
2
+
3
+ import android .app .Activity ;
4
+ import android .app .AlertDialog ;
5
+ import android .content .Intent ;
6
+ import android .net .Uri ;
7
+ import android .os .Bundle ;
8
+ import android .view .Menu ;
9
+ import android .view .MenuItem ;
10
+ import android .widget .ScrollView ;
11
+ import android .widget .TextView ;
12
+ import android .widget .Toast ;
13
+
14
+ public class MainActivity extends Activity {
15
+ TextView logView ;
16
+ ScrollView scrollView ;
17
+ enum status {
18
+ flashing ,
19
+ flashing_done ,
20
+ error ,
21
+ normal
22
+ }
23
+ static status cur_status ;
24
+ @ Override
25
+ protected void onCreate (Bundle savedInstanceState ) {
26
+ super .onCreate (savedInstanceState );
27
+ scrollView =new ScrollView (this );
28
+ logView =new TextView (this );
29
+ scrollView .addView (logView );
30
+ setContentView (scrollView );
31
+
32
+ flash_new ();
33
+ }
34
+
35
+ void update_title (){
36
+ runOnUiThread (() -> {
37
+ switch (cur_status ){
38
+ case error :
39
+ setTitle (R .string .failed );
40
+ break ;
41
+ case flashing :
42
+ setTitle (R .string .flashing );
43
+ break ;
44
+ case flashing_done :
45
+ setTitle (R .string .flashing_done );
46
+ break ;
47
+ default :
48
+ setTitle (R .string .app_name );
49
+ }
50
+ });
51
+ }
52
+
53
+ void flash_new (){
54
+ if (cur_status == MainActivity .status .flashing ){
55
+ Toast .makeText (this ,R .string .task_running ,Toast .LENGTH_SHORT ).show ();
56
+ return ;
57
+ }
58
+
59
+ logView .setText ("" );
60
+ cur_status =status .normal ;
61
+ update_title ();
62
+ Toast .makeText (this ,R .string .please_select_kzip ,Toast .LENGTH_LONG ).show ();
63
+ runWithFilePath (this , new Worker (this ));
64
+ }
65
+
66
+ @ Override
67
+ public void onBackPressed () {
68
+ if (cur_status !=status .flashing )
69
+ super .onBackPressed ();
70
+ }
71
+
72
+ @ Override
73
+ public boolean onCreateOptionsMenu (Menu menu ) {
74
+ getMenuInflater ().inflate (R .menu .menu_main , menu );
75
+ return super .onCreateOptionsMenu (menu );
76
+ }
77
+
78
+ @ Override
79
+ public boolean onOptionsItemSelected (MenuItem item ) {
80
+ if (item .getItemId () == R .id .about ) {
81
+ new AlertDialog .Builder (this )
82
+ .setTitle (R .string .about )
83
+ .setMessage (R .string .about_msg )
84
+ .setPositiveButton (R .string .ok , null )
85
+ .setNegativeButton ("Github" , (dialog1 , which1 ) -> MainActivity .this .startActivity (new Intent () {{
86
+ setAction (Intent .ACTION_VIEW );
87
+ setData (Uri .parse ("https://github.com/xzr467706992/HorizonKernelFlasher" ));
88
+ }})).create ().show ();
89
+ }
90
+ else if (item .getItemId ()==R .id .flash_new ){
91
+ flash_new ();
92
+ }
93
+ return true ;
94
+ }
95
+
96
+ public static void _appendLog (String log , Activity activity ){
97
+ activity .runOnUiThread (() -> {
98
+ ((MainActivity ) activity ).logView .append (log +"\n " );
99
+ ((MainActivity )activity ).scrollView .fullScroll (ScrollView .FOCUS_DOWN );
100
+ });
101
+ }
102
+
103
+ public static void appendLog (String log , Activity activity ){
104
+ if (!log .startsWith ("ui_print" ))
105
+ return ;
106
+ log =log .replace ("ui_print" ,"" );
107
+ _appendLog (log ,activity );
108
+ }
109
+
110
+ static class fileWorker extends Thread {
111
+ public Uri uri ;
112
+ }
113
+
114
+ private static fileWorker file_worker ;
115
+ public static void runWithFilePath (Activity activity ,fileWorker what ){
116
+ MainActivity .file_worker =what ;
117
+ Intent intent = new Intent (Intent .ACTION_GET_CONTENT );
118
+ intent .setType ("*/*" );
119
+ intent .addCategory (Intent .CATEGORY_OPENABLE );
120
+ activity .startActivityForResult (intent , 0 );
121
+ }
122
+
123
+ @ Override
124
+ protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
125
+ super .onActivityResult (requestCode , resultCode , data );
126
+ if (resultCode == Activity .RESULT_OK ) {
127
+ file_worker .uri = data .getData ();
128
+ if (file_worker !=null ) {
129
+ file_worker .start ();
130
+ file_worker =null ;
131
+ }
132
+ }
133
+ }
134
+ }
0 commit comments