Quellcode durchsuchen

设置,修改bug

chenzubin vor 2 Monaten
Ursprung
Commit
07297fc78d

+ 6 - 0
app/build.gradle

@@ -16,6 +16,10 @@ android {
16
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
17
     }
17
     }
18
 
18
 
19
+    lintOptions {
20
+        abortOnError false
21
+    }
22
+
19
     signingConfigs {
23
     signingConfigs {
20
         release {
24
         release {
21
             storeFile file('src/key/key.keystore')
25
             storeFile file('src/key/key.keystore')
@@ -71,4 +75,6 @@ dependencies {
71
     implementation 'com.github.getActivity:XXPermissions:20.0'
75
     implementation 'com.github.getActivity:XXPermissions:20.0'
72
     implementation 'androidx.databinding:databinding-runtime:4.0.0'
76
     implementation 'androidx.databinding:databinding-runtime:4.0.0'
73
     implementation 'com.github.zrunker:ZImageView:v1.0'
77
     implementation 'com.github.zrunker:ZImageView:v1.0'
78
+    implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
79
+    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
74
 }
80
 }

+ 8 - 5
app/src/main/AndroidManifest.xml

@@ -24,13 +24,12 @@
24
         android:theme="@style/Theme.MainTheme"
24
         android:theme="@style/Theme.MainTheme"
25
         tools:targetApi="31">
25
         tools:targetApi="31">
26
         <activity
26
         <activity
27
+            android:name=".SettingActivity"
28
+            android:exported="false" />
29
+        <activity
27
             android:name=".HistoryActivity"
30
             android:name=".HistoryActivity"
28
-            android:exported="true" >
29
-            <intent-filter>
30
-                <action android:name="android.intent.action.MAIN" />
31
+            android:exported="true">
31
 
32
 
32
-                <category android:name="android.intent.category.LAUNCHER" />
33
-            </intent-filter>
34
         </activity>
33
         </activity>
35
 
34
 
36
         <meta-data
35
         <meta-data
@@ -62,7 +61,11 @@
62
         <activity
61
         <activity
63
             android:name=".MainActivity"
62
             android:name=".MainActivity"
64
             android:exported="true">
63
             android:exported="true">
64
+            <intent-filter>
65
+                <action android:name="android.intent.action.MAIN" />
65
 
66
 
67
+                <category android:name="android.intent.category.LAUNCHER" />
68
+            </intent-filter>
66
         </activity>
69
         </activity>
67
         <activity
70
         <activity
68
             android:name=".ShowImageActivity"
71
             android:name=".ShowImageActivity"

+ 1 - 0
app/src/main/java/com/cfmlg/mlg/HistoryActivity.java

@@ -42,6 +42,7 @@ public class HistoryActivity extends AppCompatActivity {
42
             }
42
             }
43
         });
43
         });
44
 
44
 
45
+        getStatus();
45
 
46
 
46
         binding.imgTime.setOnClickListener(new View.OnClickListener() {
47
         binding.imgTime.setOnClickListener(new View.OnClickListener() {
47
             @Override
48
             @Override

+ 20 - 0
app/src/main/java/com/cfmlg/mlg/MainViewModel.java

@@ -0,0 +1,20 @@
1
+package com.cfmlg.mlg;
2
+
3
+import androidx.lifecycle.LiveData;
4
+import androidx.lifecycle.MutableLiveData;
5
+import androidx.lifecycle.ViewModel;
6
+
7
+public class MainViewModel extends ViewModel {
8
+
9
+    private MutableLiveData<Integer> selectedRadioId = new MutableLiveData<>();
10
+//    private MutableLiveData<Integer> selectedRadioid = new MutableLiveData<>();
11
+
12
+    public LiveData<Integer> getSelectedRadioId() {
13
+        return selectedRadioId;
14
+    }
15
+
16
+    public void setSelectedRadioId(int id) {
17
+        selectedRadioId.setValue(id);
18
+    }
19
+
20
+}

+ 46 - 0
app/src/main/java/com/cfmlg/mlg/SettingActivity.java

@@ -0,0 +1,46 @@
1
+package com.cfmlg.mlg;
2
+
3
+import androidx.appcompat.app.AppCompatActivity;
4
+import androidx.databinding.DataBindingUtil;
5
+
6
+import android.os.Bundle;
7
+import android.view.View;
8
+import android.widget.RadioButton;
9
+import android.widget.RadioGroup;
10
+
11
+import com.cfmlg.mlg.databinding.ActivitySettingBinding;
12
+
13
+public class SettingActivity extends AppCompatActivity {
14
+
15
+    public static int ladyTime = 2;
16
+    @Override
17
+    protected void onCreate(Bundle savedInstanceState) {
18
+        super.onCreate(savedInstanceState);
19
+        ActivitySettingBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_setting);
20
+
21
+        binding.radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
22
+            @Override
23
+            public void onCheckedChanged(RadioGroup group, int checkedId) {
24
+                if(R.id.radioButton2 == checkedId) {
25
+                    binding.layoutTime.setVisibility(View.VISIBLE);
26
+                } else {
27
+                    binding.layoutTime.setVisibility(View.GONE);
28
+                    ladyTime = 0;
29
+                }
30
+            }
31
+        });
32
+
33
+        binding.radioGroup2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
34
+            @Override
35
+            public void onCheckedChanged(RadioGroup group, int checkedId) {
36
+                if(R.id.radioButton3 == checkedId) {
37
+                    ladyTime = 4;
38
+                } else if(R.id.radioButton4 == checkedId) {
39
+                    ladyTime = 7;
40
+                } else {
41
+                    ladyTime = 12;
42
+                }
43
+            }
44
+        });
45
+    }
46
+}

+ 37 - 7
app/src/main/java/com/cfmlg/mlg/Video.java

@@ -78,7 +78,7 @@ public class Video extends AppCompatActivity {
78
     private Surface mSurface = null;
78
     private Surface mSurface = null;
79
     //return 1:  jpg  0:h264
79
     //return 1:  jpg  0:h264
80
     private TextView countdownTextView;
80
     private TextView countdownTextView;
81
-    private int totalTime = 4;
81
+    private int totalTime = SettingActivity.ladyTime;
82
     private RelativeLayout mainPage;
82
     private RelativeLayout mainPage;
83
     private TextView tvHistory, tvQuestion;
83
     private TextView tvHistory, tvQuestion;
84
     private TextView tvConnect;
84
     private TextView tvConnect;
@@ -147,6 +147,20 @@ public class Video extends AppCompatActivity {
147
         service.scheduleAtFixedRate(new Task1(), initialDelay1, period1, TimeUnit.SECONDS);
147
         service.scheduleAtFixedRate(new Task1(), initialDelay1, period1, TimeUnit.SECONDS);
148
 
148
 
149
         binding.imv.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ya));
149
         binding.imv.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ya));
150
+        binding.backup.setOnClickListener(new View.OnClickListener() {
151
+            @Override
152
+            public void onClick(View view) {
153
+                mainPage.setVisibility(View.VISIBLE);
154
+            }
155
+        });
156
+
157
+        binding.settings.setOnClickListener(new View.OnClickListener() {
158
+            @Override
159
+            public void onClick(View view) {
160
+                Intent intent2 = new Intent(Video.this, SettingActivity.class);
161
+                startActivity(intent2);
162
+            }
163
+        });
150
 
164
 
151
         new Thread(new Runnable() {
165
         new Thread(new Runnable() {
152
             @Override
166
             @Override
@@ -178,7 +192,7 @@ public class Video extends AppCompatActivity {
178
                                 if (totalTime > 0) {
192
                                 if (totalTime > 0) {
179
                                     handler.postDelayed(this, 1000);
193
                                     handler.postDelayed(this, 1000);
180
                                 } else {
194
                                 } else {
181
-                                    totalTime = 4;
195
+                                    totalTime = SettingActivity.ladyTime;
182
                                     countdownTextView.setVisibility(View.GONE);
196
                                     countdownTextView.setVisibility(View.GONE);
183
                                     SoundPool soundPool = new SoundPool.Builder().setMaxStreams(1).build();
197
                                     SoundPool soundPool = new SoundPool.Builder().setMaxStreams(1).build();
184
                                     int soundId = soundPool.load(Video.this, R.raw.kuaimen, 1); // 加载音频资源
198
                                     int soundId = soundPool.load(Video.this, R.raw.kuaimen, 1); // 加载音频资源
@@ -224,13 +238,9 @@ public class Video extends AppCompatActivity {
224
                         }, 50);
238
                         }, 50);
225
                     }
239
                     }
226
                 }.start();
240
                 }.start();
227
-
228
-
229
-
230
             }
241
             }
231
         });
242
         });
232
 
243
 
233
-
234
         binding.handlerecord.setOnClickListener(new View.OnClickListener() {
244
         binding.handlerecord.setOnClickListener(new View.OnClickListener() {
235
             @Override
245
             @Override
236
             public void onClick(View v) {
246
             public void onClick(View v) {
@@ -286,6 +296,14 @@ public class Video extends AppCompatActivity {
286
                     @Override
296
                     @Override
287
                     public void run() {
297
                     public void run() {
288
                         circleView.setVisibility(View.GONE);
298
                         circleView.setVisibility(View.GONE);
299
+                        String packageName = getApplicationContext().getPackageName();
300
+
301
+                        Intent intent = getApplicationContext().getPackageManager()
302
+                                .getLaunchIntentForPackage(packageName);
303
+                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
304
+
305
+                        startActivity(intent);
306
+                        finish();
289
                     }
307
                     }
290
                 }, 5000);
308
                 }, 5000);
291
 
309
 
@@ -319,6 +337,13 @@ public class Video extends AppCompatActivity {
319
         });
337
         });
320
     }
338
     }
321
 
339
 
340
+    @Override
341
+    public void onResume() {
342
+        super.onResume();  // Always call the superclass method first
343
+
344
+        totalTime = SettingActivity.ladyTime;
345
+    }
346
+
322
     public boolean onTouchEvent(MotionEvent e) {
347
     public boolean onTouchEvent(MotionEvent e) {
323
         float x = e.getX();
348
         float x = e.getX();
324
         float y = e.getY();
349
         float y = e.getY();
@@ -334,6 +359,11 @@ public class Video extends AppCompatActivity {
334
         return true;
359
         return true;
335
     }
360
     }
336
 
361
 
362
+    public void toHistory(View view) {
363
+        Intent intent2 = new Intent(Video.this, HistoryActivity.class);
364
+        startActivity(intent2);
365
+    }
366
+
337
     @Override
367
     @Override
338
     protected void onDestroy() {
368
     protected void onDestroy() {
339
         super.onDestroy();
369
         super.onDestroy();
@@ -377,7 +407,7 @@ public class Video extends AppCompatActivity {
377
                         if (totalTime > 0) {
407
                         if (totalTime > 0) {
378
                             handler.postDelayed(this, 1000);
408
                             handler.postDelayed(this, 1000);
379
                         } else {
409
                         } else {
380
-                            totalTime = 4;
410
+                            totalTime = SettingActivity.ladyTime;
381
                             countdownTextView.setVisibility(View.GONE);
411
                             countdownTextView.setVisibility(View.GONE);
382
                             SoundPool soundPool = new SoundPool.Builder().setMaxStreams(1).build();
412
                             SoundPool soundPool = new SoundPool.Builder().setMaxStreams(1).build();
383
                             int soundId = soundPool.load(Video.this, R.raw.kuaimen, 1); // 加载音频资源
413
                             int soundId = soundPool.load(Video.this, R.raw.kuaimen, 1); // 加载音频资源

BIN
app/src/main/res/drawable/setting.png


+ 105 - 0
app/src/main/res/layout/activity_setting.xml

@@ -0,0 +1,105 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
3
+    xmlns:app="http://schemas.android.com/apk/res-auto"
4
+    xmlns:tools="http://schemas.android.com/tools">
5
+
6
+    <data></data>
7
+
8
+    <LinearLayout
9
+        android:layout_width="match_parent"
10
+        android:layout_height="match_parent"
11
+        android:orientation="vertical"
12
+        tools:context=".SettingActivity">
13
+
14
+        <LinearLayout
15
+            android:layout_width="match_parent"
16
+            android:layout_height="wrap_content"
17
+            android:orientation="horizontal"
18
+            tools:context=".SettingActivity">
19
+
20
+            <TextView
21
+                android:id="@+id/tvState"
22
+                android:layout_width="wrap_content"
23
+                android:layout_height="wrap_content"
24
+                android:layout_marginLeft="50dp"
25
+                android:layout_marginTop="50dp"
26
+                android:padding="10dp"
27
+                android:text="延迟拍摄"
28
+                android:textColor="@color/black" />
29
+
30
+            <RadioGroup
31
+                android:id="@+id/radioGroup1"
32
+                android:layout_width="match_parent"
33
+                android:layout_height="wrap_content"
34
+                android:layout_marginTop="48dp"
35
+                android:orientation="horizontal">
36
+
37
+                <RadioButton
38
+                    android:id="@+id/radioButton1"
39
+                    android:layout_width="wrap_content"
40
+                    android:layout_height="wrap_content"
41
+                    android:layout_gravity="center_horizontal"
42
+                    android:checked="true"
43
+                    android:text="关闭" />
44
+
45
+                <RadioButton
46
+                    android:id="@+id/radioButton2"
47
+                    android:layout_width="wrap_content"
48
+                    android:layout_height="wrap_content"
49
+                    android:layout_gravity="center_horizontal"
50
+                    android:checked="false"
51
+                    android:text="打开" />
52
+
53
+            </RadioGroup>
54
+        </LinearLayout>
55
+
56
+        <LinearLayout
57
+            android:id="@+id/layoutTime"
58
+            android:layout_width="match_parent"
59
+            android:layout_height="match_parent"
60
+            android:visibility="gone"
61
+            android:orientation="horizontal"
62
+            tools:context=".SettingActivity">
63
+
64
+            <TextView
65
+                android:id="@+id/tvTime"
66
+                android:layout_width="wrap_content"
67
+                android:layout_height="wrap_content"
68
+                android:layout_marginLeft="50dp"
69
+                android:layout_marginTop="50dp"
70
+                android:padding="10dp"
71
+                android:text="延迟时间"
72
+                android:textColor="@color/black" />
73
+
74
+            <RadioGroup
75
+                android:id="@+id/radioGroup2"
76
+                android:layout_width="match_parent"
77
+                android:layout_height="wrap_content"
78
+                android:layout_marginTop="48dp"
79
+                android:orientation="vertical">
80
+
81
+                <RadioButton
82
+                    android:id="@+id/radioButton3"
83
+                    android:layout_width="wrap_content"
84
+                    android:layout_height="wrap_content"
85
+                    android:checked="true"
86
+                    android:text="2秒" />
87
+
88
+                <RadioButton
89
+                    android:id="@+id/radioButton4"
90
+                    android:layout_width="wrap_content"
91
+                    android:layout_height="wrap_content"
92
+                    android:checked="false"
93
+                    android:text="5秒" />
94
+
95
+                <RadioButton
96
+                    android:id="@+id/radioButton5"
97
+                    android:layout_width="wrap_content"
98
+                    android:layout_height="wrap_content"
99
+                    android:checked="false"
100
+                    android:text="10秒" />
101
+
102
+            </RadioGroup>
103
+        </LinearLayout>
104
+    </LinearLayout>
105
+</layout>

+ 41 - 15
app/src/main/res/layout/activity_video.xml

@@ -8,13 +8,38 @@
8
     tools:context=".Video"
8
     tools:context=".Video"
9
     tools:ignore="ExtraText">
9
     tools:ignore="ExtraText">
10
 
10
 
11
+
12
+
11
     <TextureView
13
     <TextureView
12
         android:id="@+id/mSurfaceview"
14
         android:id="@+id/mSurfaceview"
13
         android:layout_width="match_parent"
15
         android:layout_width="match_parent"
14
         android:layout_height="match_parent"
16
         android:layout_height="match_parent"
15
         tools:layout_editor_absoluteX="16dp"
17
         tools:layout_editor_absoluteX="16dp"
16
         tools:layout_editor_absoluteY="0dp" />
18
         tools:layout_editor_absoluteY="0dp" />
19
+    <RelativeLayout
20
+        android:layout_width="wrap_content"
21
+        android:layout_height="match_parent"
22
+        app:layout_constraintLeft_toLeftOf="parent"
23
+        app:layout_constraintTop_toTopOf="parent"
24
+        >
17
 
25
 
26
+        <ImageButton
27
+            android:id="@+id/backup"
28
+            android:layout_width="50dp"
29
+            android:layout_height="50dp"
30
+            android:layout_alignParentBottom="true"
31
+            android:background="#00000000"
32
+            android:rotation="270"
33
+            android:src="@drawable/back" />
34
+
35
+        <ImageButton
36
+            android:id="@+id/settings"
37
+            android:layout_width="50dp"
38
+            android:layout_height="50dp"
39
+            android:layout_alignParentTop="true"
40
+            android:background="#00000000"
41
+            android:src="@drawable/setting" />
42
+    </RelativeLayout>
18
     <ImageButton
43
     <ImageButton
19
         android:id="@+id/imageConnect"
44
         android:id="@+id/imageConnect"
20
         android:layout_width="wrap_content"
45
         android:layout_width="wrap_content"
@@ -25,19 +50,21 @@
25
         app:layout_constraintLeft_toLeftOf="parent"
50
         app:layout_constraintLeft_toLeftOf="parent"
26
         app:layout_constraintTop_toTopOf="parent"
51
         app:layout_constraintTop_toTopOf="parent"
27
         app:srcCompat="@drawable/fan" />
52
         app:srcCompat="@drawable/fan" />
53
+
28
     <com.cfmlg.mlg.CustomImageView
54
     <com.cfmlg.mlg.CustomImageView
29
         android:id="@+id/imv"
55
         android:id="@+id/imv"
30
         android:layout_width="wrap_content"
56
         android:layout_width="wrap_content"
31
         android:layout_height="wrap_content"
57
         android:layout_height="wrap_content"
32
-        app:layout_constraintStart_toStartOf="parent"
33
-        app:layout_constraintEnd_toEndOf="parent"
34
-        app:layout_constraintTop_toTopOf="parent"
58
+        android:src="@drawable/ya"
59
+        android:visibility="gone"
35
         app:layout_constraintBottom_toBottomOf="parent"
60
         app:layout_constraintBottom_toBottomOf="parent"
61
+        app:layout_constraintEnd_toEndOf="parent"
36
         app:layout_constraintHorizontal_bias="0.5"
62
         app:layout_constraintHorizontal_bias="0.5"
63
+        app:layout_constraintStart_toStartOf="parent"
64
+        app:layout_constraintTop_toTopOf="parent"
37
         app:layout_constraintVertical_bias="0.5"
65
         app:layout_constraintVertical_bias="0.5"
38
-        android:src="@drawable/ya"
39
-        android:visibility="gone"
40
         tools:ignore="MissingConstraints" />
66
         tools:ignore="MissingConstraints" />
67
+
41
     <LinearLayout
68
     <LinearLayout
42
         android:id="@+id/blakgrond"
69
         android:id="@+id/blakgrond"
43
         android:layout_width="wrap_content"
70
         android:layout_width="wrap_content"
@@ -103,6 +130,7 @@
103
             android:layout_alignParentLeft="true"
130
             android:layout_alignParentLeft="true"
104
             android:layout_alignParentBottom="true"
131
             android:layout_alignParentBottom="true"
105
             android:layout_marginBottom="30dp"
132
             android:layout_marginBottom="30dp"
133
+            android:onClick="toHistory"
106
             android:padding="10dp"
134
             android:padding="10dp"
107
             android:rotation="270"
135
             android:rotation="270"
108
             android:text="历史记录"
136
             android:text="历史记录"
@@ -135,8 +163,7 @@
135
             android:id="@+id/imgConnect"
163
             android:id="@+id/imgConnect"
136
             android:layout_width="200dp"
164
             android:layout_width="200dp"
137
             android:layout_height="200dp"
165
             android:layout_height="200dp"
138
-            android:layout_centerInParent="true"
139
-            >
166
+            android:layout_centerInParent="true">
140
 
167
 
141
         </ImageView>
168
         </ImageView>
142
 
169
 
@@ -158,8 +185,7 @@
158
                 android:layout_marginTop="10dp"
185
                 android:layout_marginTop="10dp"
159
                 android:rotation="270"
186
                 android:rotation="270"
160
                 android:text="未链接"
187
                 android:text="未链接"
161
-                android:textColor="@color/material_dynamic_primary30"
162
-                 />
188
+                android:textColor="@color/material_dynamic_primary30" />
163
 
189
 
164
             <ImageView
190
             <ImageView
165
                 android:id="@+id/t2"
191
                 android:id="@+id/t2"
@@ -347,14 +373,14 @@
347
 
373
 
348
         <com.cfmlg.mlg.CirclePercentView
374
         <com.cfmlg.mlg.CirclePercentView
349
             android:id="@+id/circleView"
375
             android:id="@+id/circleView"
350
-            app:stripeWidth="15dp"
351
-            app:centerTextSize="16sp"
352
-            app:percent="0"
353
-            android:rotation="270"
354
-            android:visibility="gone"
355
             android:layout_width="wrap_content"
376
             android:layout_width="wrap_content"
356
             android:layout_height="wrap_content"
377
             android:layout_height="wrap_content"
357
-            android:layout_centerInParent="true"/>
378
+            android:layout_centerInParent="true"
379
+            android:rotation="270"
380
+            android:visibility="gone"
381
+            app:centerTextSize="16sp"
382
+            app:percent="0"
383
+            app:stripeWidth="15dp" />
358
 
384
 
359
     </RelativeLayout>
385
     </RelativeLayout>
360
 </androidx.constraintlayout.widget.ConstraintLayout>
386
 </androidx.constraintlayout.widget.ConstraintLayout>