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"
minSdkVersion 24
targetSdkVersion 29
versionCode 1019
versionName "1.1.8"
versionCode 1020
versionName "1.1.9"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -248,6 +248,10 @@
android:launchMode="singleTask"
android:screenOrientation="portrait"
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 -->
<receiver

View File

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

View File

@@ -29,6 +29,7 @@ import com.xxpatx.os.BuildConfig;
import com.xxpatx.os.R;
import com.xxpatx.os.activity.screenlock.ScreenLockActivity;
import com.xxpatx.os.activity.dailyapp.DailyAppActivity;
import com.xxpatx.os.activity.service.ServiceActivity;
import com.xxpatx.os.base.BaseFragment;
import com.xxpatx.os.bean.BaseResponse;
import com.xxpatx.os.bean.DesktopIcon;
@@ -134,7 +135,7 @@ public class AppListFragment extends BaseFragment {
// if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// gridLayout.set(3, 3);
// } else {
gridLayout.set(2, 3);
gridLayout.set(2, 3);
// }
gridLayout.setGridAdapter(new MyGridLayout.GridAdatper() {
@@ -169,7 +170,7 @@ public class AppListFragment extends BaseFragment {
default:
constraintLayout.setBackground(mContext.getDrawable(R.drawable.contact_card_backround1));
}
DesktopIcon desktopIcon = mDesktopIcons.get(index);
if (desktopIcon != null) {
String pkg = desktopIcon.getPackage();
@@ -212,6 +213,7 @@ public class AppListFragment extends BaseFragment {
// desktopIcon.setIcon(mContext.getResources().getDrawable(resID));
}
} else {
iv.setImageDrawable(desktopIcon.getIcon(mContext));
}
tv.setText(desktopIcon.getTitle());
@@ -251,6 +253,9 @@ public class AppListFragment extends BaseFragment {
return;
}
switch (desktopIcon.getPackage()) {
case "xxpatx.os.service":
startActivity(new Intent(mContext, ServiceActivity.class));
break;
case "aios.daily.app":
startActivity(new Intent(mContext, DailyAppActivity.class));
break;
@@ -321,6 +326,7 @@ public class AppListFragment extends BaseFragment {
case "com.xxpatx.sn":
case "aios.daily.app":
case "aios.appstore":
case "xxpatx.os.service":
break;
default:
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();
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,24 +22,33 @@
android:scaleType="centerCrop"
android:src="@drawable/main_background" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/magicIndicator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/magicIndicator"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_centerHorizontal="true"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/cl_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintTop_toTopOf="parent">
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/magicIndicator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/magicIndicator"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_centerHorizontal="true"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bottom"
@@ -60,14 +69,6 @@
app:layout_constraintStart_toStartOf="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
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -273,5 +274,6 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</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
android:layout_width="330dp"
android:layout_height="633dp"
android:layout_marginTop="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

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

View File

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