Skip to content

Commit 7a47de9

Browse files
committed
新增 始终全屏模式
1 parent f0efca4 commit 7a47de9

File tree

11 files changed

+91
-33
lines changed

11 files changed

+91
-33
lines changed

easycontrol/app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
<activity
2525
android:name=".MainActivity"
2626
android:configChanges="keyboardHidden|screenSize|orientation"
27-
android:exported="true"
28-
android:launchMode="singleTask">
27+
android:exported="true">
2928
<intent-filter>
3029
<action android:name="android.intent.action.MAIN" />
3130

@@ -53,8 +52,7 @@
5352
android:name=".StartDeviceActivity"
5453
android:exported="true"
5554
android:hardwareAccelerated="true"
56-
android:theme="@style/Transparent"
57-
android:launchMode="singleTask" />
55+
android:theme="@style/Transparent" />
5856

5957
</application>
6058

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/MainActivity.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void onCreate(Bundle savedInstanceState) {
4343
mainActivity = ActivityMainBinding.inflate(this.getLayoutInflater());
4444
setContentView(mainActivity.getRoot());
4545
// 检测权限
46-
if (haveOverlayPermission()) startApp();
46+
if (AppData.setting.getAlwaysFullMode() || haveOverlayPermission()) startApp();
4747
else createAlert();
4848
super.onCreate(savedInstanceState);
4949
}
@@ -63,13 +63,13 @@ private void startApp() {
6363

6464
@Override
6565
protected void onDestroy() {
66-
if (haveOverlayPermission()) myBroadcastReceiver.unRegister(this);
66+
if (AppData.setting.getAlwaysFullMode() || haveOverlayPermission()) myBroadcastReceiver.unRegister(this);
6767
super.onDestroy();
6868
}
6969

7070
@Override
7171
protected void onResume() {
72-
if (!haveOverlayPermission()) createAlert();
72+
if (!AppData.setting.getAlwaysFullMode() && !haveOverlayPermission()) createAlert();
7373
super.onResume();
7474
}
7575

@@ -89,6 +89,7 @@ private boolean haveOverlayPermission() {
8989
private void createAlert() {
9090
ItemRequestPermissionBinding requestPermissionView = ItemRequestPermissionBinding.inflate(LayoutInflater.from(this));
9191
requestPermissionView.buttonGoToSet.setOnClickListener(v -> startActivity(PublicTools.getOverlayPermissionIntent(this)));
92+
requestPermissionView.buttonAlwaysFullMode.setOnClickListener(v -> AppData.setting.setAlwaysFullMode(true));
9293
Dialog dialog = PublicTools.createDialog(this, false, requestPermissionView.getRoot());
9394
dialog.show();
9495
checkPermissionDelay(dialog);
@@ -98,7 +99,7 @@ private void createAlert() {
9899
private void checkPermissionDelay(Dialog dialog) {
99100
// 因为某些设备可能会无法进入设置或其他问题,导致不会有返回结果,为了减少不确定性,使用定时检测的方法
100101
AppData.uiHandler.postDelayed(() -> {
101-
if (haveOverlayPermission()) {
102+
if (AppData.setting.getAlwaysFullMode() || haveOverlayPermission()) {
102103
dialog.cancel();
103104
startApp();
104105
} else checkPermissionDelay(dialog);

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/SetActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ private void drawUi() {
8989
setActivity.setDisplay.addView(PublicTools.createSwitchCard(this, getString(R.string.set_display_full_to_mini_on_exit), getString(R.string.set_display_full_to_mini_on_exit_detail), AppData.setting.getFullToMiniOnExit(), isChecked -> AppData.setting.setFullToMiniOnExit(isChecked)).getRoot());
9090
setActivity.setDisplay.addView(PublicTools.createSwitchCard(this, getString(R.string.set_display_default_show_nav_bar), getString(R.string.set_display_default_show_nav_bar_detail), AppData.setting.getDefaultShowNavBar(), isChecked -> AppData.setting.setDefaultShowNavBar(isChecked)).getRoot());
9191
// 其他
92+
setActivity.setOther.addView(PublicTools.createSwitchCard(this, getString(R.string.set_always_full_mode), getString(R.string.set_always_full_mode_detail), AppData.setting.getAlwaysFullMode(), isChecked -> AppData.setting.setAlwaysFullMode(isChecked)).getRoot());
9293
setActivity.setOther.addView(PublicTools.createSwitchCard(this, getString(R.string.set_mirror_mode), getString(R.string.set_mirror_mode_detail), AppData.setting.getMirrorMode(), isChecked -> AppData.setting.setMirrorMode(isChecked)).getRoot());
9394
setActivity.setOther.addView(PublicTools.createSwitchCard(this, getString(R.string.set_force_desktop_mode), getString(R.string.set_force_desktop_mode_detail), AppData.setting.getForceDesktopMode(), isChecked -> AppData.setting.setForceDesktopMode(isChecked)).getRoot());
9495
setActivity.setOther.addView(PublicTools.createSwitchCard(this, getString(R.string.set_try_start_default_in_app_transfer), getString(R.string.set_try_start_default_in_app_transfer_detail), AppData.setting.getTryStartDefaultInAppTransfer(), isChecked -> AppData.setting.setTryStartDefaultInAppTransfer(isChecked)).getRoot());

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/client/Client.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,20 @@ public Client(Device device, UsbDevice usbDevice, int mode) {
112112
startServer(device);
113113
connectServer();
114114
AppData.uiHandler.post(() -> {
115-
if (device.defaultFull) clientView.changeToFull();
115+
if (AppData.setting.getAlwaysFullMode() || device.defaultFull) clientView.changeToFull();
116116
else clientView.changeToSmall();
117117
});
118118
} catch (Exception e) {
119119
L.log(device.uuid, e);
120120
release(AppData.main.getString(R.string.log_notify));
121121
} finally {
122-
if (loading.first.getParent() != null) AppData.windowManager.removeView(loading.first);
122+
if (!AppData.setting.getAlwaysFullMode() && loading.first.getParent() != null) AppData.windowManager.removeView(loading.first);
123123
loadingTimeOutThread.interrupt();
124124
keepAliveThread.start();
125125
}
126126
});
127-
AppData.windowManager.addView(loading.first, loading.second);
127+
if (AppData.setting.getAlwaysFullMode()) PublicTools.logToast(AppData.main.getString(R.string.loading_text));
128+
else AppData.windowManager.addView(loading.first, loading.second);
128129
loadingTimeOutThread.start();
129130
startThread.start();
130131
}
@@ -289,6 +290,7 @@ private void executeStreamIn() {
289290
byte[] videoFrame = controlPacket.readFrame(bufferStream);
290291
if (videoDecode != null) videoDecode.decodeIn(videoFrame, bufferStream.readLong());
291292
else {
293+
if (clientView.getVideoSize() == null) break;
292294
if (useH265) videoDecode = new VideoDecode(clientView.getVideoSize(), clientView.getSurface(), new Pair<>(videoFrame, bufferStream.readLong()), null, handler);
293295
else {
294296
if (videoCsd == null) videoCsd = new Pair<>(videoFrame, bufferStream.readLong());

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/client/view/ClientView.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,20 @@ public ClientView(Device device, ControlPacket controlPacket, PublicTools.MyFunc
5353
this.device = new Device(device.uuid, device.type);
5454
Device.copyDevice(device, this.device);
5555
textureView = new TextureView(AppData.main);
56-
smallView = new SmallView(this);
57-
miniView = new MiniView(this);
56+
if (!AppData.setting.getAlwaysFullMode()) {
57+
smallView = new SmallView(this);
58+
miniView = new MiniView(this);
59+
} else {
60+
smallView = null;
61+
miniView = null;
62+
}
5863
this.controlPacket = controlPacket;
5964
this.changeMode = changeMode;
6065
this.onReady = onReady;
6166
this.onClose = onClose;
6267
setTouchListener();
6368
textureView.setSurfaceTextureListener(this);
64-
smallView.changeMode(mode);
69+
if (smallView != null) smallView.changeMode(mode);
6570
}
6671

6772
public void updateDevice() {
@@ -139,7 +144,7 @@ public void changeSize(float ratio) {
139144

140145
public void changeMode(int mode) {
141146
this.mode = mode;
142-
smallView.changeMode(mode);
147+
if (smallView != null) smallView.changeMode(mode);
143148
if (fullView != null) fullView.changeMode(mode);
144149
}
145150

@@ -157,19 +162,21 @@ public synchronized void changeToFull() {
157162
}
158163

159164
public synchronized void changeToSmall() {
165+
if (smallView == null) return;
160166
hide(false);
161167
smallView.show();
162168
}
163169

164170
public synchronized void changeToMini(int mode) {
171+
if (miniView == null) return;
165172
hide(false);
166173
miniView.show(mode);
167174
}
168175

169176
public synchronized void hide(boolean isRelease) {
170177
if (fullView != null) fullView.hide();
171-
smallView.hide();
172-
miniView.hide();
178+
if (smallView != null) smallView.hide();
179+
if (miniView != null) miniView.hide();
173180
if (isRelease && surfaceTexture != null) surfaceTexture.release();
174181
}
175182

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/client/view/FullActivity.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,13 @@ private void setButtonListener() {
114114
setNavBarHide(fullActivity.navBar.getVisibility() == View.GONE);
115115
barViewTimer();
116116
});
117-
fullActivity.buttonMini.setOnClickListener(v -> clientView.changeToMini(0));
118-
fullActivity.buttonFullExit.setOnClickListener(v -> clientView.changeToSmall());
117+
if (!AppData.setting.getAlwaysFullMode()) {
118+
fullActivity.buttonMini.setOnClickListener(v -> clientView.changeToMini(0));
119+
fullActivity.buttonFullExit.setOnClickListener(v -> clientView.changeToSmall());
120+
} else {
121+
fullActivity.buttonMini.setOnClickListener(v -> PublicTools.logToast(getString(R.string.error_mode_not_support)));
122+
fullActivity.buttonFullExit.setOnClickListener(v -> PublicTools.logToast(getString(R.string.error_mode_not_support)));
123+
}
119124
fullActivity.buttonClose.setOnClickListener(v -> clientView.onClose.run());
120125
if (clientView.mode == 1) fullActivity.buttonTransfer.setImageResource(R.drawable.share_in);
121126
fullActivity.buttonTransfer.setOnClickListener(v -> {

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/entity/Setting.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,15 @@ public void setTryStartDefaultInAppTransfer(boolean value) {
205205
editor.apply();
206206
}
207207

208+
public boolean getAlwaysFullMode() {
209+
return sharedPreferences.getBoolean("alwaysFullMode", false);
210+
}
211+
212+
public void setAlwaysFullMode(boolean value) {
213+
editor.putBoolean("alwaysFullMode", value);
214+
editor.apply();
215+
}
216+
208217
public Setting(SharedPreferences sharedPreferences) {
209218
this.sharedPreferences = sharedPreferences;
210219
this.editor = sharedPreferences.edit();

easycontrol/app/src/main/java/top/eiyooooo/easycontrol/app/helper/DeviceListAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ public static void startDefault(int mode) {
330330
if (device.connectOnStart) {
331331
startDevice(device, mode);
332332
started = true;
333+
if (AppData.setting.getAlwaysFullMode()) break;
333334
}
334335
}
335336
// 返回桌面

easycontrol/app/src/main/res/layout/item_request_permission.xml

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,43 @@
2929
android:textSize="@dimen/middleFont"
3030
android:textStyle="bold" />
3131

32-
<Button
33-
android:id="@+id/button_go_to_set"
34-
android:layout_width="150dp"
32+
<GridLayout
33+
android:id="@+id/button_layout"
34+
android:layout_width="match_parent"
3535
android:layout_height="wrap_content"
36-
android:layout_marginTop="20dp"
37-
android:background="@drawable/background_cron"
38-
android:backgroundTint="@color/button"
39-
android:gravity="center"
40-
android:text="@string/main_float_permission_button"
41-
android:textColor="@color/onButton"
42-
android:textSize="@dimen/smallFont" />
36+
android:layout_marginBottom="12dp"
37+
android:columnCount="3"
38+
android:paddingStart="12dp"
39+
android:paddingEnd="12dp"
40+
android:paddingTop="12dp">
41+
42+
<Button
43+
android:id="@+id/button_go_to_set"
44+
android:layout_columnWeight="9"
45+
android:layout_width="0dp"
46+
android:layout_height="wrap_content"
47+
android:background="@drawable/background_cron"
48+
android:backgroundTint="@color/button"
49+
android:gravity="center"
50+
android:text="@string/main_float_permission_button"
51+
android:textColor="@color/onButton"
52+
android:textSize="@dimen/smallFont" />
53+
54+
<Space android:layout_columnWeight="1" />
55+
56+
<Button
57+
android:id="@+id/button_always_full_mode"
58+
android:layout_columnWeight="9"
59+
android:layout_width="0dp"
60+
android:layout_height="wrap_content"
61+
android:background="@drawable/background_cron"
62+
android:backgroundTint="@color/button"
63+
android:gravity="center"
64+
android:text="@string/main_no_float_mode_button"
65+
android:textColor="@color/onButton"
66+
android:textSize="@dimen/smallFont" />
67+
68+
</GridLayout>
4369

4470
</LinearLayout>
4571

easycontrol/app/src/main/res/values-en/strings.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
<!-- 主页 -->
66
<string name="main_poem">Unregulated driving, loved ones end up in tears.</string>
77
<string name="car_version_message">If you like the car version\nYou can left a star on the car version GitHub repository🙇</string>
8-
<string name="main_float_permission">Please grant floating window permission.\nOtherwise the software cannot be used.</string>
9-
<string name="main_float_permission_button">Go to setting</string>
8+
<string name="main_float_permission">Please grant floating window permission.\nOtherwise, the software functions are incomplete.</string>
9+
<string name="main_float_permission_button">Go authorize</string>
10+
<string name="main_no_float_mode_button">Always full</string>
1011

1112
<!-- 设置页面 -->
1213
<string name="set_default">Default settings</string>
@@ -34,6 +35,8 @@
3435
<string name="set_display_full_to_mini_on_exit">Fullscreen auto minimize</string>
3536
<string name="set_display_full_to_mini_on_exit_detail">When fullscreen not manually exits, auto minimize it (Auto mini to floating window when close)</string>
3637
<string name="set_other">Other</string>
38+
<string name="set_always_full_mode">Always full screen mode</string>
39+
<string name="set_always_full_mode_detail">Always connect to the device in full screen mode, ignoring \u0022Default full screen\u0022 settings in the device (Only one default device can be opened when the software starts)</string>
3740
<string name="set_mirror_mode">Android 14 compatibility mode</string>
3841
<string name="set_mirror_mode_detail">If display issues occur on Android 14 and above, try enabling this option</string>
3942
<string name="set_force_desktop_mode">Force desktop mode when using application transfer</string>
@@ -117,6 +120,7 @@
117120
<string name="error_app_not_found">The specified package name application does not exist</string>
118121
<string name="error_device_not_found">Device not found</string>
119122
<string name="error_default_device_not_found">Default device not found</string>
123+
<string name="error_mode_not_support">Not supported in always full screen mode</string>
120124

121125
<!-- 提示 -->
122126
<string name="tip_application_transfer">Application transfer is an experimental feature, and some mobile phone systems do not support it</string>

0 commit comments

Comments
 (0)