Compare commits
5 Commits
apputils-v
...
appbase-v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afa8a97dba | ||
|
|
fe004c7b82 | ||
|
|
b9582cb99d | ||
|
|
b3a69283ab | ||
|
|
36e10db8e3 |
@@ -29,7 +29,7 @@ android {
|
|||||||
// versionName 更新后需要手动设置
|
// versionName 更新后需要手动设置
|
||||||
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
// .winboll/winbollBuildProps.properties 文件的 stageCount=0
|
||||||
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
|
// Gradle编译环境下合起来的 versionName 就是 "${versionName}.0"
|
||||||
versionName "1.0"
|
versionName "1.1"
|
||||||
if(true) {
|
if(true) {
|
||||||
versionName = genVersionName("${versionName}")
|
versionName = genVersionName("${versionName}")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sun Jan 05 02:30:11 GMT 2025
|
#Wed Jan 22 14:47:54 HKT 2025
|
||||||
stageCount=0
|
stageCount=1
|
||||||
libraryProject=
|
libraryProject=libappbase
|
||||||
baseVersion=1.0
|
baseVersion=1.1
|
||||||
publishVersion=1.0.0
|
publishVersion=1.1.0
|
||||||
buildCount=2
|
buildCount=0
|
||||||
baseBetaVersion=1.0.1
|
baseBetaVersion=1.1.1
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Wed Jan 22 17:19:38 HKT 2025
|
#Sat Jan 18 13:03:10 HKT 2025
|
||||||
stageCount=3
|
stageCount=2
|
||||||
libraryProject=libapputils
|
libraryProject=libapputils
|
||||||
baseVersion=9.2
|
baseVersion=9.2
|
||||||
publishVersion=9.2.2
|
publishVersion=9.2.1
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=9.2.3
|
baseBetaVersion=9.2.2
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ import cc.winboll.studio.libapputils.app.WinBollActivityManager;
|
|||||||
import cc.winboll.studio.libapputils.log.LogActivity;
|
import cc.winboll.studio.libapputils.log.LogActivity;
|
||||||
import cc.winboll.studio.libapputils.log.LogUtils;
|
import cc.winboll.studio.libapputils.log.LogUtils;
|
||||||
import com.hjq.toast.ToastUtils;
|
import com.hjq.toast.ToastUtils;
|
||||||
import cc.winboll.studio.libapputils.activities.AboutActivity;
|
|
||||||
import cc.winboll.studio.libapputils.bean.APPInfo;
|
|
||||||
|
|
||||||
final public class MainActivity extends WinBollActivity {
|
final public class MainActivity extends WinBollActivity {
|
||||||
|
|
||||||
@@ -52,13 +50,10 @@ final public class MainActivity extends WinBollActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onLogUtilsClick(View view) {
|
public void onLogUtilsClick(View view) {
|
||||||
// Intent intent = new Intent(this, LogActivity.class);
|
Intent intent = new Intent(this, LogActivity.class);
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||||
// startActivity(intent);
|
startActivity(intent);
|
||||||
|
|
||||||
//WinBollActivityManager.getInstance().printAvtivityListInfo();
|
|
||||||
WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -163,15 +158,6 @@ final public class MainActivity extends WinBollActivity {
|
|||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onTestAboutActivity(View view) {
|
|
||||||
Intent intent = new Intent(this, AboutActivity.class);
|
|
||||||
APPInfo appInfo = new APPInfo();
|
|
||||||
appInfo.setAppIcon(cc.winboll.studio.libapputils.R.drawable.ic_winboll);
|
|
||||||
appInfo.setAppName("Test APP");
|
|
||||||
intent.putExtra(AboutActivity.EXTRA_APPINFO, appInfo);
|
|
||||||
WinBollActivityManager.getInstance(this).startWinBollActivity(this, intent, AboutActivity.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onTestJavascriptHtmlActivity(View view) {
|
public void onTestJavascriptHtmlActivity(View view) {
|
||||||
Intent intent = new Intent(this, AssetsHtmlActivity.class);
|
Intent intent = new Intent(this, AssetsHtmlActivity.class);
|
||||||
|
|||||||
@@ -54,21 +54,6 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="right">
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAllCaps="false"
|
|
||||||
android:text="Test AboutActivity"
|
|
||||||
android:onClick="onTestAboutActivity"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sun Jan 05 07:55:11 HKT 2025
|
#Wed Jan 22 14:47:54 HKT 2025
|
||||||
stageCount=17
|
stageCount=1
|
||||||
libraryProject=winboll-shared
|
libraryProject=libappbase
|
||||||
baseVersion=1.8
|
baseVersion=1.1
|
||||||
publishVersion=1.8.16
|
publishVersion=1.1.0
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=1.8.17
|
baseBetaVersion=1.1.1
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.HorizontalScrollView;
|
import android.widget.HorizontalScrollView;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -194,6 +195,7 @@ public final class CrashHandler {
|
|||||||
case MENUITEM_COPY:
|
case MENUITEM_COPY:
|
||||||
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
cm.setPrimaryClip(ClipData.newPlainText(getPackageName(), mLog));
|
cm.setPrimaryClip(ClipData.newPlainText(getPackageName(), mLog));
|
||||||
|
Toast.makeText(getApplication(), "The text is copied.", Toast.LENGTH_SHORT).show();
|
||||||
break;
|
break;
|
||||||
case MENUITEM_RESTART:
|
case MENUITEM_RESTART:
|
||||||
restart();
|
restart();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Wed Jan 22 17:19:38 HKT 2025
|
#Sat Jan 18 13:02:39 HKT 2025
|
||||||
stageCount=3
|
stageCount=2
|
||||||
libraryProject=libapputils
|
libraryProject=libapputils
|
||||||
baseVersion=9.2
|
baseVersion=9.2
|
||||||
publishVersion=9.2.2
|
publishVersion=9.2.1
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=9.2.3
|
baseBetaVersion=9.2.2
|
||||||
|
|||||||
@@ -1,31 +1,25 @@
|
|||||||
package cc.winboll.studio.libapputils.activities;
|
package cc.winboll.studio.libapputils.activities;
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen@QQ.COM
|
|
||||||
* @Date 2024/07/14 13:20:33
|
|
||||||
* @Describe 应用介绍页
|
|
||||||
*/
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import cc.winboll.studio.libapputils.R;
|
import cc.winboll.studio.libapputils.R;
|
||||||
import cc.winboll.studio.libapputils.app.WinBollActivity;
|
import cc.winboll.studio.libapputils.app.WinBollActivity;
|
||||||
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
|
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
|
||||||
import cc.winboll.studio.libapputils.bean.APPInfo;
|
import cc.winboll.studio.libapputils.log.LogUtils;
|
||||||
import cc.winboll.studio.libapputils.view.AboutView;
|
|
||||||
import com.hjq.toast.ToastUtils;
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen@QQ.COM
|
||||||
|
* @Date 2024/07/14 13:20:33
|
||||||
|
* @Describe AboutFragment Test
|
||||||
|
*/
|
||||||
final public class AboutActivity extends WinBollActivity {
|
final public class AboutActivity extends WinBollActivity {
|
||||||
|
|
||||||
public static final String TAG = "AboutActivity";
|
public static final String TAG = "AboutActivity";
|
||||||
public static final String EXTRA_APPINFO = "EXTRA_APPINFO";
|
|
||||||
|
|
||||||
|
|
||||||
APPInfo mAPPInfo;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
return TAG;
|
return TAG;
|
||||||
@@ -40,19 +34,21 @@ final public class AboutActivity extends WinBollActivity {
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_about);
|
setContentView(R.layout.activity_about);
|
||||||
Intent intent = getIntent();
|
|
||||||
if (intent != null) {
|
/*AboutView aboutView = findViewById(R.id.activityaboutAboutView1);
|
||||||
mAPPInfo = (APPInfo)intent.getSerializableExtra(EXTRA_APPINFO);
|
aboutView.setOnRequestDevUserInfoAutofillListener(new AboutView.OnRequestDevUserInfoAutofillListener(){
|
||||||
}
|
|
||||||
if (mAPPInfo == null) {
|
@Override
|
||||||
mAPPInfo = new APPInfo();
|
public void requestAutofill(EditText etDevUserName, EditText etDevUserPassword) {
|
||||||
}
|
AutofillManager autofillManager = (AutofillManager) getSystemService(AutofillManager.class);
|
||||||
|
if (autofillManager!= null) {
|
||||||
AboutView aboutView = new AboutView(this, mAPPInfo);
|
//ToastUtils.show("0");
|
||||||
LinearLayout llMain = findViewById(R.id.activityaboutLinearLayout1);
|
autofillManager.requestAutofill(findViewById(R.id.usernameEditText));
|
||||||
llMain.addView(aboutView);
|
autofillManager.requestAutofill(findViewById(R.id.passwordEditText));
|
||||||
|
}
|
||||||
ToastUtils.show(TAG);
|
}
|
||||||
|
});*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -83,8 +79,9 @@ final public class AboutActivity extends WinBollActivity {
|
|||||||
if (item.getItemId() == R.id.item_help) {
|
if (item.getItemId() == R.id.item_help) {
|
||||||
WinBollActivityManager.getInstance(this).startWinBollActivity(this, AssetsHtmlActivity.class);
|
WinBollActivityManager.getInstance(this).startWinBollActivity(this, AssetsHtmlActivity.class);
|
||||||
}
|
}
|
||||||
|
// else if (item.getItemId() == android.R.id.home) {
|
||||||
|
// WinBollActivityManager.getInstance(this).finish(this);
|
||||||
|
// }
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -366,16 +366,10 @@ abstract public class WinBollActivity extends AppCompatActivity {
|
|||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
LogUtils.d(TAG, "onOptionsItemSelected");
|
LogUtils.d(TAG, "onOptionsItemSelected");
|
||||||
if (item.getItemId() == R.id.item_log) {
|
if (item.getItemId() == R.id.item_log) {
|
||||||
// LogUtils.d(TAG, "item_log not yet.");
|
LogUtils.d(TAG, "item_log not yet.");
|
||||||
// Intent intent = new Intent(this, LogActivity.class);
|
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
|
||||||
// startActivity(intent);
|
|
||||||
|
|
||||||
//WinBollActivityManager.getInstance().printAvtivityListInfo();
|
//WinBollActivityManager.getInstance().printAvtivityListInfo();
|
||||||
WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
|
//WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class);
|
||||||
} else if (item.getItemId() == R.id.item_exit) {
|
} else if (item.getItemId() == R.id.item_exit) {
|
||||||
//ToastUtils.show("item_exit");
|
|
||||||
WinBollActivityManager.getInstance(this).finishAll();
|
WinBollActivityManager.getInstance(this).finishAll();
|
||||||
} else if (item.getItemId() == R.id.item_info) {
|
} else if (item.getItemId() == R.id.item_info) {
|
||||||
WinBollApplication application = (WinBollApplication) getApplication();
|
WinBollApplication application = (WinBollApplication) getApplication();
|
||||||
|
|||||||
@@ -20,16 +20,17 @@ import java.util.Map;
|
|||||||
public class WinBollActivityManager {
|
public class WinBollActivityManager {
|
||||||
|
|
||||||
public static final String TAG = "WinBollActivityManager";
|
public static final String TAG = "WinBollActivityManager";
|
||||||
public static final String EXTRA_TAG = "EXTRA_TAG";
|
|
||||||
|
|
||||||
Context mContext;
|
Context mContext;
|
||||||
static WinBollActivityManager _mWinBollActivityManager;
|
static WinBollActivityManager _mWinBollActivityManager;
|
||||||
static Map<String, WinBollActivity> _mapActivityList;
|
static Map<String, WinBollActivity> _mapActivityList;
|
||||||
|
//static ArrayList<WinBollActivity> _mWinBollActivityList;
|
||||||
|
|
||||||
public WinBollActivityManager(Context context) {
|
public WinBollActivityManager(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
LogUtils.d(TAG, "WinBollActivityManager()");
|
LogUtils.d(TAG, "WinBollActivityManager()");
|
||||||
_mapActivityList = new HashMap<String, WinBollActivity>();
|
_mapActivityList = new HashMap<String, WinBollActivity>();
|
||||||
|
//_mWinBollActivityList = new ArrayList<WinBollActivity>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized WinBollActivityManager getInstance(Context context) {
|
public static synchronized WinBollActivityManager getInstance(Context context) {
|
||||||
@@ -41,10 +42,19 @@ public class WinBollActivityManager {
|
|||||||
return _mWinBollActivityManager;
|
return _mWinBollActivityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 把Activity添加到管理中
|
* 把Activity添加到管理中
|
||||||
//
|
*/
|
||||||
public <T extends WinBollActivity> void add(T activity) {
|
public <T extends WinBollActivity> void add(T activity) {
|
||||||
|
/*for (int i = 0; i < _mWinBollActivityList.size(); i++) {
|
||||||
|
LogUtils.d(TAG, String.format("add for i %d\nget(i).getTag() %s", i, _mWinBollActivityList.get(i).getTag()));
|
||||||
|
if (_mWinBollActivityList.get(i).getTag().equals(activity.getTag())) {
|
||||||
|
_mWinBollActivityList.add(i, activity);
|
||||||
|
_mWinBollActivityList.remove(i);
|
||||||
|
LogUtils.d(TAG, String.format("Replace activity : %s\nSize %d", activity.getTag(), _mWinBollActivityList.size()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
if (isActive(activity.getTag())) {
|
if (isActive(activity.getTag())) {
|
||||||
LogUtils.d(TAG, String.format("add(...) %s is active.", activity.getTag()));
|
LogUtils.d(TAG, String.format("add(...) %s is active.", activity.getTag()));
|
||||||
} else {
|
} else {
|
||||||
@@ -56,7 +66,7 @@ public class WinBollActivityManager {
|
|||||||
|
|
||||||
//
|
//
|
||||||
// activity: 为 null 时,
|
// activity: 为 null 时,
|
||||||
// intent.putExtra 函数 EXTRA_TAG 参数为 tag
|
// intent.putExtra 函数 "tag" 参数为 tag
|
||||||
// activity: 不为 null 时,
|
// activity: 不为 null 时,
|
||||||
// intent.putExtra 函数 "tag" 参数为 activity.getTag()
|
// intent.putExtra 函数 "tag" 参数为 activity.getTag()
|
||||||
//
|
//
|
||||||
@@ -74,7 +84,7 @@ public class WinBollActivityManager {
|
|||||||
//打开多任务窗口 flags
|
//打开多任务窗口 flags
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||||
intent.putExtra(EXTRA_TAG, tag);
|
intent.putExtra("tag", tag);
|
||||||
mContext.startActivity(intent);
|
mContext.startActivity(intent);
|
||||||
} catch (InstantiationException | IllegalAccessException e) {
|
} catch (InstantiationException | IllegalAccessException e) {
|
||||||
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
@@ -95,18 +105,18 @@ public class WinBollActivityManager {
|
|||||||
//打开多任务窗口 flags
|
//打开多任务窗口 flags
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
||||||
intent.putExtra(EXTRA_TAG, tag);
|
intent.putExtra("tag", tag);
|
||||||
mContext.startActivity(intent);
|
mContext.startActivity(intent);
|
||||||
} catch (InstantiationException | IllegalAccessException e) {
|
} catch (InstantiationException | IllegalAccessException e) {
|
||||||
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 判断 tag绑定的 MyActivity是否存在
|
* 判断 tag绑定的 MyActivity是否存在
|
||||||
//
|
*/
|
||||||
public boolean isActive(String tag) {
|
public boolean isActive(String tag) {
|
||||||
//printAvtivityListInfo();
|
printAvtivityListInfo();
|
||||||
WinBollActivity activity = getWinBollActivity(tag);
|
WinBollActivity activity = getWinBollActivity(tag);
|
||||||
if (activity != null) {
|
if (activity != null) {
|
||||||
LogUtils.d(TAG, "isActive(...) activity != null tag " + tag);
|
LogUtils.d(TAG, "isActive(...) activity != null tag " + tag);
|
||||||
@@ -131,21 +141,21 @@ public class WinBollActivityManager {
|
|||||||
return _mapActivityList.get(tag);
|
return _mapActivityList.get(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
* 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
||||||
//
|
*/
|
||||||
public <T extends WinBollActivity> void resumeActivity(Context context, String tag) {
|
public <T extends WinBollActivity> void resumeActivity(Context context, String tag) {
|
||||||
LogUtils.d(TAG, "resumeActivty");
|
LogUtils.d(TAG, "resumeActivty");
|
||||||
T activity = (T)getWinBollActivity(tag);
|
T activity = (T)getWinBollActivity(tag);
|
||||||
//LogUtils.d(TAG, "activity " + activity.getTag());
|
LogUtils.d(TAG, "activity " + activity.getTag());
|
||||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||||
resumeActivity(context, activity);
|
resumeActivity(context, activity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
* 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台
|
||||||
//
|
*/
|
||||||
public <T extends WinBollActivity> void resumeActivity(Context context, T activity) {
|
public <T extends WinBollActivity> void resumeActivity(Context context, T activity) {
|
||||||
ActivityManager am = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
|
ActivityManager am = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
//返回启动它的根任务(home 或者 MainActivity)
|
//返回启动它的根任务(home 或者 MainActivity)
|
||||||
@@ -160,39 +170,39 @@ public class WinBollActivityManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 结束所有 Activity
|
* 结束所有 Activity
|
||||||
//
|
*/
|
||||||
public void finishAll() {
|
public void finishAll() {
|
||||||
try {
|
try {
|
||||||
for (String key : _mapActivityList.keySet()) {
|
LogUtils.d(TAG, "finishAll no yet.");
|
||||||
//System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key));
|
//ToastUtils.show(String.format("finishAll() size : %d", _mWinBollActivityList.size()));
|
||||||
WinBollActivity activity = _mapActivityList.get(key);
|
// for (int i = _mWinBollActivityList.size() - 1; i > -1; i--) {
|
||||||
//ToastUtils.show("finishAll() activity");
|
// WinBollActivity activity = _mWinBollActivityList.get(i);
|
||||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
// ToastUtils.show("finishAll() activity");
|
||||||
//ToastUtils.show("activity != null ...");
|
// if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||||
if (WinBollApplication.getWinBollUI_TYPE() == WinBollApplication.WinBollUI_TYPE.Service) {
|
// //ToastUtils.show("activity != null ...");
|
||||||
// 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。
|
// if (WinBollApplication.getWinBollUI_TYPE() == WinBollApplication.WinBollUI_TYPE.Service) {
|
||||||
activity.finishAndRemoveTask();
|
// // 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。
|
||||||
//ToastUtils.show("finishAll() activity.finishAndRemoveTask();");
|
// activity.finishAndRemoveTask();
|
||||||
} else if (WinBollApplication.getWinBollUI_TYPE() == WinBollApplication.WinBollUI_TYPE.Aplication) {
|
// //ToastUtils.show("finishAll() activity.finishAndRemoveTask();");
|
||||||
// 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。
|
// } else if (WinBollApplication.getWinBollUI_TYPE() == WinBollApplication.WinBollUI_TYPE.Aplication) {
|
||||||
activity.finish();
|
// // 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。
|
||||||
//ToastUtils.show("finishAll() activity.finish();");
|
// activity.finish();
|
||||||
} else {
|
// //ToastUtils.show("finishAll() activity.finish();");
|
||||||
LogUtils.d(TAG, "WinBollApplication.WinBollUI_TYPE error.");
|
// } else {
|
||||||
//ToastUtils.show("WinBollApplication.WinBollUI_TYPE error.");
|
// ToastUtils.show("WinBollApplication.WinBollUI_TYPE error.");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
// 结束指定Activity
|
* 结束指定Activity
|
||||||
//
|
*/
|
||||||
public <T extends WinBollActivity> void finish(T activity) {
|
public <T extends WinBollActivity> void finish(T activity) {
|
||||||
try {
|
try {
|
||||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||||
@@ -215,6 +225,22 @@ public class WinBollActivityManager {
|
|||||||
if (preActivity != null) {
|
if (preActivity != null) {
|
||||||
resumeActivity(mContext, preActivity);
|
resumeActivity(mContext, preActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for (int i = 0; i < _mWinBollActivityList.size(); i++) {
|
||||||
|
// if (_mWinBollActivityList.get(i).getTag().equals(activity.getTag())) {
|
||||||
|
// //ToastUtils.show(String.format("equals i : %d\nTag : %s\nSize : %d", i, activity.getTag(), _mWinBollActivityList.size()));
|
||||||
|
// if (i == 0) {
|
||||||
|
// finishAll();
|
||||||
|
// //ToastUtils.show("finish finishAll");
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// if (i > 0) {
|
||||||
|
// activity.finish();
|
||||||
|
// resumeActivity(mContext, _mWinBollActivityList.get(i - 1));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -222,9 +248,6 @@ public class WinBollActivityManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// 获取窗口队列中的前一个窗口
|
|
||||||
//
|
|
||||||
WinBollActivity getPreActivity(WinBollActivity activity) {
|
WinBollActivity getPreActivity(WinBollActivity activity) {
|
||||||
try {
|
try {
|
||||||
boolean bingo = false;
|
boolean bingo = false;
|
||||||
@@ -248,10 +271,12 @@ public class WinBollActivityManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// 从管理列表中移除管理项
|
|
||||||
//
|
|
||||||
public <T extends WinBollActivity> boolean registeRemove(T activity) {
|
public <T extends WinBollActivity> boolean registeRemove(T activity) {
|
||||||
|
// for (int i = 0; i < _mWinBollActivityList.size(); i++) {
|
||||||
|
// if (registeRemove(activity, i)) {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
WinBollActivity activityTest = _mapActivityList.get(activity.getTag());
|
WinBollActivity activityTest = _mapActivityList.get(activity.getTag());
|
||||||
if (activityTest != null) {
|
if (activityTest != null) {
|
||||||
_mapActivityList.remove(activity.getTag());
|
_mapActivityList.remove(activity.getTag());
|
||||||
@@ -260,9 +285,15 @@ public class WinBollActivityManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
// public <T extends WinBollActivity> boolean registeRemove(T activity, int position) {
|
||||||
// 打印管理列表项列表里的信息
|
// if (_mWinBollActivityList.get(position) == activity) {
|
||||||
//
|
// _mWinBollActivityList.remove(position);
|
||||||
|
// //ToastUtils.show(String.format("registeRemove remove.\nTag %s\nposition %d", activity.getTag(), position));
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
public static void printAvtivityListInfo() {
|
public static void printAvtivityListInfo() {
|
||||||
//LogUtils.d(TAG, "printAvtivityListInfo");
|
//LogUtils.d(TAG, "printAvtivityListInfo");
|
||||||
if (!_mapActivityList.isEmpty()) {
|
if (!_mapActivityList.isEmpty()) {
|
||||||
@@ -279,4 +310,6 @@ public class WinBollActivityManager {
|
|||||||
LogUtils.d(TAG, "The map is empty.");
|
LogUtils.d(TAG, "The map is empty.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,107 +0,0 @@
|
|||||||
package cc.winboll.studio.libapputils.bean;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen@QQ.COM
|
|
||||||
* @Date 2025/01/20 14:19:02
|
|
||||||
* @Describe 应用信息类
|
|
||||||
*/
|
|
||||||
import cc.winboll.studio.libapputils.R;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class APPInfo implements Serializable {
|
|
||||||
|
|
||||||
public static final String TAG = "APPInfo";
|
|
||||||
|
|
||||||
// 应用名称
|
|
||||||
String appName;
|
|
||||||
// 应用图标
|
|
||||||
int appIcon;
|
|
||||||
// 应用描述
|
|
||||||
String appDescription;
|
|
||||||
// 应用Git仓库地址
|
|
||||||
String appGitName;
|
|
||||||
// 应用主页
|
|
||||||
String appHomePage;
|
|
||||||
// 应用包名称
|
|
||||||
String appAPKName;
|
|
||||||
// 应用包存储文件夹名称
|
|
||||||
String appAPKFolderName;
|
|
||||||
|
|
||||||
public APPInfo(String appName, int appIcon, String appDescription, String appGitName, String appHomePage, String appAPKName, String appAPKFolderName) {
|
|
||||||
this.appName = appName;
|
|
||||||
this.appIcon = appIcon;
|
|
||||||
this.appDescription = appDescription;
|
|
||||||
this.appGitName = appGitName;
|
|
||||||
this.appHomePage = appHomePage;
|
|
||||||
this.appAPKName = appAPKName;
|
|
||||||
this.appAPKFolderName = appAPKFolderName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public APPInfo() {
|
|
||||||
this.appName = "WinBoll-APP";
|
|
||||||
this.appIcon = R.drawable.ic_launcher;
|
|
||||||
this.appDescription = "WinBoll APP";
|
|
||||||
this.appGitName = "APP";
|
|
||||||
this.appHomePage = "https://www.winboll.cc/studio/details.php?app=APP";
|
|
||||||
this.appAPKName = "APP";
|
|
||||||
this.appAPKFolderName = "APP";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppIcon(int appIcon) {
|
|
||||||
this.appIcon = appIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAppIcon() {
|
|
||||||
return appIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppDescription(String appDescription) {
|
|
||||||
this.appDescription = appDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppDescription() {
|
|
||||||
return appDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppAPKFolderName(String appAPKFolderName) {
|
|
||||||
this.appAPKFolderName = appAPKFolderName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppAPKFolderName() {
|
|
||||||
return appAPKFolderName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppName(String appName) {
|
|
||||||
this.appName = appName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppName() {
|
|
||||||
return appName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppGitName(String appGitName) {
|
|
||||||
this.appGitName = appGitName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppGitName() {
|
|
||||||
return appGitName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppHomePage(String appHomePage) {
|
|
||||||
this.appHomePage = appHomePage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppHomePage() {
|
|
||||||
return appHomePage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppAPKName(String appAPKName) {
|
|
||||||
this.appAPKName = appAPKName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppAPKName() {
|
|
||||||
return appAPKName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,41 +1,30 @@
|
|||||||
package cc.winboll.studio.libapputils.log;
|
package cc.winboll.studio.libapputils.log;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import cc.winboll.studio.libapputils.R;
|
||||||
|
import cc.winboll.studio.libapputils.app.WinBollActivity;
|
||||||
|
import cc.winboll.studio.libapputils.ads.ADsView;
|
||||||
|
import cc.winboll.studio.libapputils.app.WinBollApplication;
|
||||||
|
import android.view.View;
|
||||||
|
import android.app.Activity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen@QQ.COM
|
* @Author ZhanGSKen@QQ.COM
|
||||||
* @Date 2024/08/12 15:07:58
|
* @Date 2024/08/12 15:07:58
|
||||||
* @Describe WinBoll 应用日志窗口
|
* @Describe WinBoll 应用日志窗口
|
||||||
*/
|
*/
|
||||||
import android.os.Bundle;
|
public class LogActivity extends Activity {
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
import cc.winboll.studio.libapputils.R;
|
|
||||||
import cc.winboll.studio.libapputils.app.WinBollActivity;
|
|
||||||
import cc.winboll.studio.libapputils.app.WinBollApplication;
|
|
||||||
|
|
||||||
public class LogActivity extends WinBollActivity {
|
|
||||||
|
|
||||||
public static final String TAG = "LogActivity";
|
public static final String TAG = "LogActivity";
|
||||||
|
|
||||||
LogView mLogView;
|
LogView mLogView;
|
||||||
|
//ADsView mADsView;
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
public String getTag() {
|
// protected boolean isEnableDisplayHomeAsUp() {
|
||||||
return TAG;
|
// return false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Toolbar initToolBar() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isEnableDisplayHomeAsUp() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isAddWinBollToolBar() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -43,8 +32,12 @@ public class LogActivity extends WinBollActivity {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_log);
|
setContentView(R.layout.activity_log);
|
||||||
mLogView = findViewById(R.id.logview);
|
mLogView = findViewById(R.id.logview);
|
||||||
|
//mADsView = findViewById(R.id.adsview);
|
||||||
if (WinBollApplication.isDebug()) { mLogView.start(); }
|
//mADsView.loadUrl("https://www.winboll.cc");
|
||||||
|
//mLogView.setVisibility(WinBollApplication.isDebug()?View.GONE:View.VISIBLE);
|
||||||
|
//mADsView.setVisibility(WinBollApplication.isDebug()?View.GONE:View.VISIBLE);
|
||||||
|
|
||||||
|
if(WinBollApplication.isDebug()) { mLogView.start(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,4 +46,21 @@ public class LogActivity extends WinBollActivity {
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
mLogView.start();
|
mLogView.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected boolean isAddWinBollToolBar() {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// protected Toolbar initToolBar() {
|
||||||
|
// LogUtils.d(TAG, "initToolBar");
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public String getTag() {
|
||||||
|
// LogUtils.d(TAG, "getTag");
|
||||||
|
// return TAG;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import cc.winboll.studio.libapputils.R;
|
|||||||
import cc.winboll.studio.libapputils.app.AppVersionUtils;
|
import cc.winboll.studio.libapputils.app.AppVersionUtils;
|
||||||
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
|
import cc.winboll.studio.libapputils.app.WinBollActivityManager;
|
||||||
import cc.winboll.studio.libapputils.app.WinBollApplication;
|
import cc.winboll.studio.libapputils.app.WinBollApplication;
|
||||||
import cc.winboll.studio.libapputils.bean.APPInfo;
|
|
||||||
import cc.winboll.studio.libapputils.bean.DebugBean;
|
import cc.winboll.studio.libapputils.bean.DebugBean;
|
||||||
import cc.winboll.studio.libapputils.log.LogUtils;
|
import cc.winboll.studio.libapputils.log.LogUtils;
|
||||||
import cc.winboll.studio.libapputils.util.PrefUtils;
|
import cc.winboll.studio.libapputils.util.PrefUtils;
|
||||||
@@ -42,8 +41,6 @@ public class AboutView extends LinearLayout {
|
|||||||
public static final int MSG_APPUPDATE_CHECKED = 0;
|
public static final int MSG_APPUPDATE_CHECKED = 0;
|
||||||
|
|
||||||
Context mContext;
|
Context mContext;
|
||||||
APPInfo mAPPInfo;
|
|
||||||
|
|
||||||
WinBollServiceStatusView mWinBollServiceStatusView;
|
WinBollServiceStatusView mWinBollServiceStatusView;
|
||||||
OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
|
OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
|
||||||
String mszAppName = "";
|
String mszAppName = "";
|
||||||
@@ -62,46 +59,23 @@ public class AboutView extends LinearLayout {
|
|||||||
EditText metDevUserName;
|
EditText metDevUserName;
|
||||||
EditText metDevUserPassword;
|
EditText metDevUserPassword;
|
||||||
|
|
||||||
public AboutView(Context context, APPInfo appInfo) {
|
|
||||||
super(context);
|
|
||||||
setAPPInfo(appInfo);
|
|
||||||
initView(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public AboutView(Context context, AttributeSet attrs) {
|
public AboutView(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
initView(context, attrs);
|
initView(context, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAPPInfo(APPInfo appInfo) {
|
void initView(Context context, AttributeSet attrs) {
|
||||||
mAPPInfo = appInfo;
|
mContext = context;
|
||||||
}
|
mszWinBollServerHost = WinBollApplication.isDebug() ? "http://10.8.0.13": "https://www.winboll.cc";
|
||||||
|
|
||||||
APPInfo createAppInfo(Context context, AttributeSet attrs) {
|
|
||||||
APPInfo appInfo = new APPInfo();
|
|
||||||
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AboutView);
|
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AboutView);
|
||||||
appInfo.setAppName(typedArray.getString(R.styleable.AboutView_app_name));
|
mszAppName = typedArray.getString(R.styleable.AboutView_app_name);
|
||||||
appInfo.setAppAPKFolderName(typedArray.getString(R.styleable.AboutView_app_apkfoldername));
|
mszAppAPKFolderName = typedArray.getString(R.styleable.AboutView_app_apkfoldername);
|
||||||
appInfo.setAppAPKName(typedArray.getString(R.styleable.AboutView_app_apkname));
|
mszAppAPKName = typedArray.getString(R.styleable.AboutView_app_apkname);
|
||||||
appInfo.setAppGitName(typedArray.getString(R.styleable.AboutView_app_gitname));
|
mszAppGitName = typedArray.getString(R.styleable.AboutView_app_gitname);
|
||||||
appInfo.setAppDescription(typedArray.getString(R.styleable.AboutView_appdescription));
|
mszAppDescription = typedArray.getString(R.styleable.AboutView_appdescription);
|
||||||
appInfo.setAppIcon(typedArray.getResourceId(R.styleable.AboutView_appicon, R.drawable.ic_winboll));
|
mnAppIcon = typedArray.getResourceId(R.styleable.AboutView_appicon, R.drawable.ic_winboll);
|
||||||
// 返回一个绑定资源结束的信号给资源
|
// 返回一个绑定资源结束的信号给资源
|
||||||
typedArray.recycle();
|
typedArray.recycle();
|
||||||
return appInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
void initView(Context context) {
|
|
||||||
mContext = context;
|
|
||||||
|
|
||||||
mszAppName = mAPPInfo.getAppName();
|
|
||||||
mszAppAPKFolderName = mAPPInfo.getAppAPKFolderName();
|
|
||||||
mszAppAPKName = mAPPInfo.getAppAPKName();
|
|
||||||
mszAppGitName = mAPPInfo.getAppGitName();
|
|
||||||
mszAppDescription = mAPPInfo.getAppDescription();
|
|
||||||
mnAppIcon = mAPPInfo.getAppIcon();
|
|
||||||
|
|
||||||
mszWinBollServerHost = WinBollApplication.isDebug() ? "http://10.8.0.13": "https://www.winboll.cc";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mszAppVersionName = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
|
mszAppVersionName = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName;
|
||||||
@@ -157,11 +131,6 @@ public class AboutView extends LinearLayout {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void initView(Context context, AttributeSet attrs) {
|
|
||||||
mAPPInfo = createAppInfo(context, attrs);
|
|
||||||
initView(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String subBetaSuffix(String input) {
|
public static String subBetaSuffix(String input) {
|
||||||
if (input.endsWith(".beta")) {
|
if (input.endsWith(".beta")) {
|
||||||
return input.substring(0, input.length() - ".beta".length());
|
return input.substring(0, input.length() - ".beta".length());
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
<androidx.appcompat.widget.Toolbar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/activityaboutToolbar1"/>
|
android:id="@+id/activityaboutToolbar1"/>
|
||||||
|
|
||||||
<LinearLayout
|
<cc.winboll.studio.libapputils.view.AboutView
|
||||||
android:orientation="vertical"
|
app:app_name= "APP"
|
||||||
android:layout_width="match_parent"
|
app:app_apkfoldername="APP"
|
||||||
android:layout_height="0dp"
|
app:app_apkname="APP"
|
||||||
android:layout_weight="1.0"
|
app:app_gitname="APP"
|
||||||
android:id="@+id/activityaboutLinearLayout1"/>
|
app:appdescription="WinBoll.CC 网站客户端。"
|
||||||
|
app:appicon="@drawable/ic_winboll"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/activityaboutAboutView1"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
app:cardElevation="4dp"
|
app:cardElevation="4dp"
|
||||||
app:cardCornerRadius="4dp"
|
app:cardCornerRadius="4dp"
|
||||||
android:id="@+id/listviewauthinfoCardView1"
|
android:id="@+id/listviewauthinfoCardView1"
|
||||||
android:layout_marginLeft="0dp"
|
android:layout_marginLeft="10dp"
|
||||||
android:layout_marginRight="5dp">
|
android:layout_marginRight="10dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
@@ -19,7 +19,6 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginLeft="5dp"
|
|
||||||
android:id="@+id/viewlogtagTextView1"/>
|
android:id="@+id/viewlogtagTextView1"/>
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
|
|||||||
Reference in New Issue
Block a user