Compare commits
2 Commits
numtable
...
9e9402f84e
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9e9402f84e | ||
![]() |
ec18330022 |
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Thu Jul 17 09:57:24 HKT 2025
|
#Sun Jul 27 15:39:49 HKT 2025
|
||||||
stageCount=12
|
stageCount=13
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.3
|
baseVersion=15.3
|
||||||
publishVersion=15.3.11
|
publishVersion=15.3.12
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.3.12
|
baseBetaVersion=15.3.13
|
||||||
|
@@ -40,6 +40,10 @@ public class CallLogAdapter extends RecyclerView.Adapter<CallLogAdapter.CallLogV
|
|||||||
this.mContactUtils = ContactUtils.getInstance(mContext);
|
this.mContactUtils = ContactUtils.getInstance(mContext);
|
||||||
this.callLogList = callLogList;
|
this.callLogList = callLogList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void relaodContacts() {
|
||||||
|
this.mContactUtils.relaodContacts();
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
@@ -161,4 +161,12 @@ public class CallLogFragment extends Fragment {
|
|||||||
_CallLogFragment.triggerUpdate();
|
_CallLogFragment.triggerUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
//ToastUtils.show("onResume");
|
||||||
|
callLogAdapter.relaodContacts();
|
||||||
|
readCallLog(); // 窗口回显时更新通话记录
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -163,5 +163,12 @@ public class ContactsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
contactAdapter.notifyDataSetChanged();
|
contactAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
//ToastUtils.show("onResume");
|
||||||
|
readContacts(); // 窗口回显时更新联系人列表
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Thu Jul 24 10:16:27 HKT 2025
|
#Sun Jun 08 21:21:11 HKT 2025
|
||||||
stageCount=2
|
stageCount=1
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.1
|
baseVersion=15.1
|
||||||
publishVersion=15.1.1
|
publishVersion=15.1.0
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.1.2
|
baseBetaVersion=15.1.1
|
||||||
|
@@ -3,11 +3,6 @@
|
|||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="cc.winboll.studio.numtable">
|
package="cc.winboll.studio.numtable">
|
||||||
|
|
||||||
<!-- Android 13及以下需要的权限 -->
|
|
||||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
|
|
||||||
<!-- 可选:查询快捷方式是否存在(部分机型需要) -->
|
|
||||||
<uses-permission android:name="com.android.launcher.permission.QUERY_ALL_PACKAGES" />
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
@@ -34,7 +29,9 @@
|
|||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.max_aspect"
|
android:name="android.max_aspect"
|
||||||
android:value="4.0"/>
|
android:value="4.0"/>
|
||||||
|
|
||||||
|
<activity android:name=".GlobalApplication$CrashActivity"/>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@@ -1,20 +1,10 @@
|
|||||||
package cc.winboll.studio.numtable;
|
package cc.winboll.studio.numtable;
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.ShortcutInfo;
|
|
||||||
import android.content.pm.ShortcutManager;
|
|
||||||
import android.graphics.drawable.Icon;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.RadioButton;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import cc.winboll.studio.libappbase.LogView;
|
import cc.winboll.studio.libappbase.LogView;
|
||||||
import cc.winboll.studio.numtable.R;
|
|
||||||
import com.hjq.toast.ToastUtils;
|
import com.hjq.toast.ToastUtils;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@@ -29,99 +19,10 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
mLogView = findViewById(R.id.logview);
|
mLogView = findViewById(R.id.logview);
|
||||||
|
|
||||||
// 初始化创建快捷方式按钮
|
ToastUtils.show("onCreate");
|
||||||
Button btnCreateShortcut = findViewById(R.id.btn_create_shortcut);
|
|
||||||
btnCreateShortcut.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
createDesktopShortcut();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
((RadioButton)findViewById(R.id.rb_right)).setChecked(true);
|
|
||||||
((RadioButton)findViewById(R.id.rb_left)).setChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDirectionClick(View view) {
|
|
||||||
switch (view.getId()) {
|
|
||||||
case R.id.rb_right:
|
|
||||||
{
|
|
||||||
((RadioButton)findViewById(R.id.rb_left)).setChecked(false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case R.id.rb_left:
|
|
||||||
{
|
|
||||||
((RadioButton)findViewById(R.id.rb_right)).setChecked(false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建桌面快捷方式
|
|
||||||
*/
|
|
||||||
private void createDesktopShortcut() {
|
|
||||||
// 1. 创建启动目标Activity的Intent(通常是你的主Activity)
|
|
||||||
Intent targetIntent = new Intent(this, MainActivity.class); // 替换为你的主Activity
|
|
||||||
targetIntent.setAction(Intent.ACTION_MAIN);
|
|
||||||
targetIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
|
||||||
targetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
|
|
||||||
|
|
||||||
// 2. 创建快捷方式的Intent
|
|
||||||
Intent shortcutIntent = new Intent();
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
// 生成随机UUID
|
|
||||||
UUID uuid = UUID.randomUUID();
|
|
||||||
// 转换为字符串
|
|
||||||
String uuidStr = uuid.toString();
|
|
||||||
// Android 8.0及以上:使用ShortcutManager
|
|
||||||
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
|
|
||||||
if (shortcutManager.isRequestPinShortcutSupported()) {
|
|
||||||
if (((RadioButton)findViewById(R.id.rb_right)).isChecked()) {
|
|
||||||
// 创建快捷方式信息
|
|
||||||
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, uuidStr) // 唯一ID
|
|
||||||
.setShortLabel(">>") // 短标签(显示在桌面)
|
|
||||||
.setLongLabel("在右边 >>") // 长标签(长按显示)
|
|
||||||
.setIcon(Icon.createWithResource(this, R.drawable.ic_point_right)) // 图标
|
|
||||||
.setIntent(targetIntent)
|
|
||||||
.build();
|
|
||||||
// 发送创建请求
|
|
||||||
shortcutManager.requestPinShortcut(shortcutInfo, null);
|
|
||||||
} else {
|
|
||||||
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, uuidStr) // 唯一ID
|
|
||||||
.setShortLabel("<<") // 短标签(显示在桌面)
|
|
||||||
.setLongLabel("在左边 <<") // 长标签(长按显示)
|
|
||||||
.setIcon(Icon.createWithResource(this, R.drawable.ic_point_left)) // 图标
|
|
||||||
.setIntent(targetIntent)
|
|
||||||
.build();
|
|
||||||
// 发送创建请求
|
|
||||||
shortcutManager.requestPinShortcut(shortcutInfo, null);
|
|
||||||
}
|
|
||||||
ToastUtils.show("已请求创建快捷方式");
|
|
||||||
} else {
|
|
||||||
ToastUtils.show("当前设备不支持创建快捷方式");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Android 7.1及以下:使用旧版广播方式
|
|
||||||
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent);
|
|
||||||
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "应用快捷方式"); // 快捷方式名称
|
|
||||||
// 设置图标(使用应用图标)
|
|
||||||
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
|
|
||||||
Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher));
|
|
||||||
// 标记为创建快捷方式
|
|
||||||
shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
|
|
||||||
// 防止重复创建
|
|
||||||
shortcutIntent.putExtra("duplicate", false);
|
|
||||||
|
|
||||||
// 发送广播创建快捷方式
|
|
||||||
sendBroadcast(shortcutIntent);
|
|
||||||
ToastUtils.show("快捷方式已创建");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
@@ -1,20 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="512dp"
|
|
||||||
android:height="512dp"
|
|
||||||
android:viewportWidth="512"
|
|
||||||
android:viewportHeight="512">
|
|
||||||
<path
|
|
||||||
android:fillColor="#FF3D8A1C"
|
|
||||||
android:strokeColor="#FFF5DD00"
|
|
||||||
android:strokeWidth="5.0"
|
|
||||||
android:strokeLineCap="round"
|
|
||||||
android:strokeMiterLimit="10"
|
|
||||||
android:pathData="M401.84 141.95C361.52 236.12 354.86 278.98 399.2 382.12 359.53 383.01 245.24 289.83 245.38 265.73 247.41 236.75 361.69 143.4 401.84 141.95Z"/>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FF3D8A1C"
|
|
||||||
android:strokeColor="#FFF5DD00"
|
|
||||||
android:strokeWidth="5.0"
|
|
||||||
android:strokeLineCap="round"
|
|
||||||
android:strokeMiterLimit="10"
|
|
||||||
android:pathData="M276.81 141.95C236.49 236.12 229.83 278.98 274.17 382.12 234.5 383.01 120.2 289.83 120.35 265.73 122.37 236.75 236.66 143.4 276.81 141.95Z"/>
|
|
||||||
</vector>
|
|
@@ -1,20 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="512dp"
|
|
||||||
android:height="512dp"
|
|
||||||
android:viewportWidth="512"
|
|
||||||
android:viewportHeight="512">
|
|
||||||
<path
|
|
||||||
android:fillColor="#FF3D8A1C"
|
|
||||||
android:strokeColor="#FFF5DD00"
|
|
||||||
android:strokeWidth="5.0"
|
|
||||||
android:strokeLineCap="round"
|
|
||||||
android:strokeMiterLimit="10"
|
|
||||||
android:pathData="M103.57 145.68C143.89 239.85 150.55 282.71 106.21 385.85 145.88 386.74 260.17 293.56 260.03 269.46 258 240.48 143.72 147.13 103.57 145.68Z"/>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FF3D8A1C"
|
|
||||||
android:strokeColor="#FFF5DD00"
|
|
||||||
android:strokeWidth="5.0"
|
|
||||||
android:strokeLineCap="round"
|
|
||||||
android:strokeMiterLimit="10"
|
|
||||||
android:pathData="M228.6 145.68C268.92 239.85 275.58 282.71 231.24 385.85 270.91 386.74 385.21 293.56 385.06 269.46 383.04 240.48 268.75 147.13 228.6 145.68Z"/>
|
|
||||||
</vector>
|
|
@@ -23,44 +23,14 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="1.0">
|
android:layout_weight="1.0"
|
||||||
|
android:gravity="center_vertical|center_horizontal">
|
||||||
|
|
||||||
<LinearLayout
|
<TextView
|
||||||
android:orientation="horizontal"
|
android:layout_width="wrap_content"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="right|center_vertical"
|
android:text="NumTable"
|
||||||
android:layout_gravity="center_vertical">
|
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="60dp"
|
|
||||||
android:layout_height="60dp"
|
|
||||||
android:background="@drawable/ic_point_right"/>
|
|
||||||
|
|
||||||
<RadioButton
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/rb_right"
|
|
||||||
android:onClick="onDirectionClick"/>
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="60dp"
|
|
||||||
android:layout_height="60dp"
|
|
||||||
android:background="@drawable/ic_point_left"/>
|
|
||||||
|
|
||||||
<RadioButton
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/rb_left"
|
|
||||||
android:onClick="onDirectionClick"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btn_create_shortcut"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="创建桌面快捷方式"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user