version:1.1.9

fix:
update:增加客服联系方式,优化主页显示
This commit is contained in:
2024-09-04 10:26:46 +08:00
parent 7f134d6328
commit d8703be23b
15 changed files with 174 additions and 48 deletions

View File

@@ -15,8 +15,8 @@ android {
applicationId "com.xxpatx.os" applicationId "com.xxpatx.os"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 1019 versionCode 1020
versionName "1.1.8" versionName "1.1.9"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -248,6 +248,10 @@
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/activity_styles" /> android:theme="@style/activity_styles" />
<activity
android:name=".activity.service.ServiceActivity"
android:launchMode="singleTask"
android:theme="@style/activity_styles" />
<!-- Intent received used to install shortcuts from other applications --> <!-- Intent received used to install shortcuts from other applications -->
<receiver <receiver

View File

@@ -68,6 +68,7 @@ import com.xxpatx.os.utils.TimeUtils;
import com.xxpatx.os.utils.Utils; import com.xxpatx.os.utils.Utils;
import com.xxpatx.os.utils.WiFiUtils; import com.xxpatx.os.utils.WiFiUtils;
import com.xxpatx.os.view.ScaleCircleNavigator; import com.xxpatx.os.view.ScaleCircleNavigator;
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
import net.lucode.hackware.magicindicator.ViewPagerHelper; import net.lucode.hackware.magicindicator.ViewPagerHelper;
@@ -101,7 +102,7 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
private CameraManager cameraManager; private CameraManager cameraManager;
private boolean flashing = false; private boolean flashing = false;
private DockAppAdapter mDockAppAdapter; // private DockAppAdapter mDockAppAdapter;
private DockAppGridAdapter mDockAppGridAdapter; private DockAppGridAdapter mDockAppGridAdapter;
@Override @Override
@@ -146,7 +147,8 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
Log.e(TAG, "initView: "); Log.e(TAG, "initView: ");
NetworkUtils.registerNetworkStatusChangedListener(this); NetworkUtils.registerNetworkStatusChangedListener(this);
// UltimateBarX.addNavigationBarBottomPadding(mViewDataBinding.clBottom); // UltimateBarX.addStatusBarTopPadding(mViewDataBinding.root);
UltimateBarX.addNavigationBarBottomPadding(mViewDataBinding.clBottom);
toggleNotificationListenerService(this); toggleNotificationListenerService(this);
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
@@ -219,10 +221,10 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
NotificationService.setListener(this); NotificationService.setListener(this);
updateIconBg(); updateIconBg();
View decorView = getWindow().getDecorView(); // View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); // decorView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener);
// // 隐藏导航栏 // // 隐藏导航栏
hideNavigationBar(); // hideNavigationBar();
} }
@@ -241,10 +243,10 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
// 隐藏导航栏 // 隐藏导航栏
private void hideNavigationBar() { private void hideNavigationBar() {
View decorView = getWindow().getDecorView(); View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// | View.SYSTEM_UI_FLAG_FULLSCREEN // | View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; // | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions); decorView.setSystemUiVisibility(uiOptions);
} }
@@ -482,12 +484,12 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
mDockAppGridAdapter = new DockAppGridAdapter(MainActivity.this); mDockAppGridAdapter = new DockAppGridAdapter(MainActivity.this);
mViewDataBinding.gridView.setAdapter(mDockAppGridAdapter); mViewDataBinding.gridView.setAdapter(mDockAppGridAdapter);
mDockAppAdapter = new DockAppAdapter(); // mDockAppAdapter = new DockAppAdapter();
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 5); // GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 5);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); // LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); // linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mViewDataBinding.recyclerView.setLayoutManager(gridLayoutManager); // mViewDataBinding.recyclerView.setLayoutManager(gridLayoutManager);
mViewDataBinding.recyclerView.setAdapter(mDockAppAdapter); // mViewDataBinding.recyclerView.setAdapter(mDockAppAdapter);
String jsonString = mMMKV.decodeString(DockActivity.DOCK_APP_KEY); String jsonString = mMMKV.decodeString(DockActivity.DOCK_APP_KEY);
Log.e(TAG, "initView: dock = " + jsonString); Log.e(TAG, "initView: dock = " + jsonString);
if (!TextUtils.isEmpty(jsonString)) { if (!TextUtils.isEmpty(jsonString)) {
@@ -497,23 +499,23 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
try { try {
List<DockApp> dockApps = gson.fromJson(jsonString, type); List<DockApp> dockApps = gson.fromJson(jsonString, type);
if (dockApps != null && !dockApps.isEmpty()) { if (dockApps != null && !dockApps.isEmpty()) {
mDockAppAdapter.setDockApps(dockApps); // mDockAppAdapter.setDockApps(dockApps);
mViewDataBinding.gridView.setNumColumns(dockApps.size()); mViewDataBinding.gridView.setNumColumns(dockApps.size());
mDockAppGridAdapter.setDockApps(dockApps); mDockAppGridAdapter.setDockApps(dockApps);
} else { } else {
mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); // mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size()); mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size());
mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
} }
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "initView: " + e.getMessage()); Log.e(TAG, "initView: " + e.getMessage());
mMMKV.encode(DockActivity.DOCK_APP_KEY, ""); mMMKV.encode(DockActivity.DOCK_APP_KEY, "");
mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); // mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size()); mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size());
mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
} }
} else { } else {
mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); // mDockAppAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size()); mViewDataBinding.gridView.setNumColumns(DockActivity.DEFAULT_DOCK_APP.size());
mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP); mDockAppGridAdapter.setDockApps(DockActivity.DEFAULT_DOCK_APP);
} }

View File

@@ -0,0 +1,51 @@
package com.xxpatx.os.activity.service;
import android.view.Gravity;
import android.view.View;
import com.xxpatx.os.R;
import com.xxpatx.os.base.mvvm.BaseMvvmActivity;
import com.xxpatx.os.databinding.ActivityServiceBinding;
import com.xxpatx.os.fragment.settings.SettingsFragment;
public class ServiceActivity extends BaseMvvmActivity<ServiceModelView, ActivityServiceBinding> {
@Override
protected int getLayoutId() {
return R.layout.activity_service;
}
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
mViewDataBinding.setClick(new BtnClick());
}
@Override
protected void initView() {
hideNavigationBar();
getWindow().setGravity(Gravity.CENTER);
}
@Override
protected void initData() {
}
// 隐藏导航栏
private void hideNavigationBar() {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
// | View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
public class BtnClick {
public void exit(View view) {
finish();
}
}
}

View File

@@ -0,0 +1,19 @@
package com.xxpatx.os.activity.service;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.xxpatx.os.base.mvvm.BaseViewModel;
import com.xxpatx.os.databinding.ActivityServiceBinding;
public class ServiceModelView extends BaseViewModel<ActivityServiceBinding, ActivityEvent> {
@Override
public ActivityServiceBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
}

View File

@@ -98,6 +98,8 @@ public class DesktopIcon implements Serializable, Parcelable {
switch (mPackage) { switch (mPackage) {
case AppManager.ADD_NAME: case AppManager.ADD_NAME:
return context.getDrawable(R.drawable.home_icon_add); return context.getDrawable(R.drawable.home_icon_add);
case "xxpatx.os.service":
return context.getDrawable(R.drawable.icon_wechat_service);
case "aios.daily.app": case "aios.daily.app":
return context.getDrawable(R.drawable.icon_daily_app); return context.getDrawable(R.drawable.icon_daily_app);
case "aios.appstore": case "aios.appstore":

View File

@@ -29,6 +29,7 @@ import com.xxpatx.os.BuildConfig;
import com.xxpatx.os.R; import com.xxpatx.os.R;
import com.xxpatx.os.activity.screenlock.ScreenLockActivity; import com.xxpatx.os.activity.screenlock.ScreenLockActivity;
import com.xxpatx.os.activity.dailyapp.DailyAppActivity; import com.xxpatx.os.activity.dailyapp.DailyAppActivity;
import com.xxpatx.os.activity.service.ServiceActivity;
import com.xxpatx.os.base.BaseFragment; import com.xxpatx.os.base.BaseFragment;
import com.xxpatx.os.bean.BaseResponse; import com.xxpatx.os.bean.BaseResponse;
import com.xxpatx.os.bean.DesktopIcon; import com.xxpatx.os.bean.DesktopIcon;
@@ -212,6 +213,7 @@ public class AppListFragment extends BaseFragment {
// desktopIcon.setIcon(mContext.getResources().getDrawable(resID)); // desktopIcon.setIcon(mContext.getResources().getDrawable(resID));
} }
} else { } else {
iv.setImageDrawable(desktopIcon.getIcon(mContext)); iv.setImageDrawable(desktopIcon.getIcon(mContext));
} }
tv.setText(desktopIcon.getTitle()); tv.setText(desktopIcon.getTitle());
@@ -251,6 +253,9 @@ public class AppListFragment extends BaseFragment {
return; return;
} }
switch (desktopIcon.getPackage()) { switch (desktopIcon.getPackage()) {
case "xxpatx.os.service":
startActivity(new Intent(mContext, ServiceActivity.class));
break;
case "aios.daily.app": case "aios.daily.app":
startActivity(new Intent(mContext, DailyAppActivity.class)); startActivity(new Intent(mContext, DailyAppActivity.class));
break; break;
@@ -321,6 +326,7 @@ public class AppListFragment extends BaseFragment {
case "com.xxpatx.sn": case "com.xxpatx.sn":
case "aios.daily.app": case "aios.daily.app":
case "aios.appstore": case "aios.appstore":
case "xxpatx.os.service":
break; break;
default: default:
showHideDialog(desktopIcon); showHideDialog(desktopIcon);

View File

@@ -427,6 +427,11 @@ public class ApkUtils {
} }
} }
DesktopIcon dailyIcon = new DesktopIcon();
dailyIcon.setTitle("客服中心");
dailyIcon.setPackage("xxpatx.os.service");
desktopIcons.add(0, dailyIcon);
List<ShortcutPkgInfo> shortcutPkgInfos = ShortcutUtils.getInstance().getShortcutList(); List<ShortcutPkgInfo> shortcutPkgInfos = ShortcutUtils.getInstance().getShortcutList();
desktopIcons.addAll(shortcutPkgInfos); desktopIcons.addAll(shortcutPkgInfos);

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -22,6 +22,13 @@
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@drawable/main_background" /> android:src="@drawable/main_background" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/cl_bottom"
app:layout_constraintTop_toTopOf="parent">
<androidx.viewpager.widget.ViewPager <androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager" android:id="@+id/viewPager"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -37,10 +44,12 @@
android:layout_height="16dp" android:layout_height="16dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:visibility="visible" android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/cl_bottom" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bottom" android:id="@+id/cl_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -60,14 +69,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:itemCount="5"
tools:listitem="@layout/item_dock_app" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -273,5 +274,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.service.ServiceActivity">
<data>
<variable
name="click"
type="com.xxpatx.os.activity.service.ServiceActivity.BtnClick" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{click::exit}">
<com.shehuan.niv.NiceImageView
android:id="@+id/iv_qrcode"
android:layout_width="300dp"
android:layout_height="493dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/wechat_service"
app:corner_radius="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -15,6 +15,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="330dp" android:layout_width="330dp"
android:layout_height="633dp" android:layout_height="633dp"
android:layout_marginTop="20dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@@ -18,6 +18,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="330dp" android:layout_width="330dp"
android:layout_height="633dp" android:layout_height="633dp"
android:layout_marginTop="20dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@@ -26,9 +27,9 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_weather" android:id="@+id/cl_weather"
android:layout_width="330dp" android:layout_width="330dp"
android:visibility="gone"
android:layout_height="165dp" android:layout_height="165dp"
android:onClick="@{click::toWeather}" android:onClick="@{click::toWeather}"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">

View File

@@ -6,7 +6,7 @@
<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@color/colorPrimary</item> <item name="android:windowBackground">@color/transparent</item>
</style> </style>
<style name="AppThemeFitsSystem" parent="Theme.AppCompat.Light.NoActionBar"> <style name="AppThemeFitsSystem" parent="Theme.AppCompat.Light.NoActionBar">