Commit 06ff406d by zhengnw@sobot.com

同步app代码

parent 6ac79ee6
...@@ -8,7 +8,7 @@ android { ...@@ -8,7 +8,7 @@ android {
defaultConfig { defaultConfig {
applicationId "com.sobot.moduletest" applicationId "com.sobot.moduletest"
minSdkVersion 17 minSdkVersion 19
targetSdkVersion 34 targetSdkVersion 34
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
......
...@@ -5,7 +5,6 @@ import static com.sobot.widget.ui.SobotBaseConstant.REQUEST_CODE_PICTURE; ...@@ -5,7 +5,6 @@ import static com.sobot.widget.ui.SobotBaseConstant.REQUEST_CODE_PICTURE;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -13,23 +12,13 @@ import android.widget.TextView; ...@@ -13,23 +12,13 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
//import com.sobot.album.Action;
//import com.sobot.album.AlbumFile;
//import com.sobot.album.SobotAlbum;
//import com.sobot.album.api.widget.Widget;
//import com.sobot.album.app.preview.PreviewAlbumActivity;
import com.sobot.album.Action; import com.sobot.album.Action;
import com.sobot.album.AlbumFile; import com.sobot.album.AlbumFile;
import com.sobot.album.SobotAlbum; import com.sobot.album.SobotAlbum;
import com.sobot.album.api.widget.Widget; import com.sobot.album.api.widget.Widget;
import com.sobot.chat.imageloader.SobotImageLoader; import com.sobot.chat.imageloader.SobotImageLoader;
import com.sobot.common.login.SobotLoginTools;
import com.sobot.common.login.callback.SobotResultBlock;
import com.sobot.common.login.callback.SobotResultCode;
import com.sobot.common.login.model.SobotServiceInfoModel;
import com.sobot.common.utils.SobotImageUtils; import com.sobot.common.utils.SobotImageUtils;
import com.sobot.network.http.db.SobotDownloadManager; import com.sobot.network.http.db.SobotDownloadManager;
import com.sobot.network.http.log.SobotNetLogUtils;
import com.sobot.pictureframe.SobotBitmapUtil; import com.sobot.pictureframe.SobotBitmapUtil;
import com.sobot.utils.SobotLogUtils; import com.sobot.utils.SobotLogUtils;
import com.sobot.utils.SobotSDCardUtils; import com.sobot.utils.SobotSDCardUtils;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/sobot_white"
android:orientation="vertical" android:orientation="vertical"
tools:context=".MainActivity"> tools:context=".MainActivity">
...@@ -11,13 +12,12 @@ ...@@ -11,13 +12,12 @@
<ImageView <ImageView
android:id="@+id/img" android:id="@+id/img"
android:layout_width="60dp" android:layout_width="60dp"
android:layout_height="60dp" android:layout_height="60dp" />
/>
<com.sobot.widget.image.photoview.SobotPhotoView <com.sobot.widget.image.photoview.SobotPhotoView
android:id="@+id/img2" android:id="@+id/img2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"/> android:layout_height="wrap_content" />
<TextView <TextView
android:id="@+id/tv" android:id="@+id/tv"
......
...@@ -2,7 +2,7 @@ apply plugin: 'com.android.library' ...@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
android { android {
compileSdkVersion 34 compileSdkVersion 34
defaultConfig { defaultConfig {
minSdkVersion 17 minSdkVersion 19
targetSdkVersion 34 targetSdkVersion 34
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
...@@ -28,6 +28,5 @@ dependencies { ...@@ -28,6 +28,5 @@ dependencies {
} }
//添加发布到mavenCentral脚本 //添加发布到mavenCentral脚本
apply from: './sobot-album_publish-mavencentral.gradle' apply from: './sobot-album_publish-mavencentral.gradle'
\ No newline at end of file
...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) { ...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) {
ext { ext {
PUBLISH_GROUP_ID = "com.sobot.library" //项目包名 PUBLISH_GROUP_ID = "com.sobot.library" //项目包名
PUBLISH_ARTIFACT_ID = 'album' //项目名 PUBLISH_ARTIFACT_ID = 'album' //项目名
PUBLISH_VERSION = '1.1.2' //版本号 PUBLISH_VERSION = '2.0.0' //版本号
} }
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
*/ */
package com.sobot.album; package com.sobot.album;
import android.content.Context; import android.app.Activity;
public interface ItemAction<T> { public interface ItemAction<T> {
...@@ -25,5 +25,5 @@ public interface ItemAction<T> { ...@@ -25,5 +25,5 @@ public interface ItemAction<T> {
* @param context context. * @param context context.
* @param item item. * @param item item.
*/ */
void onAction(Context context, T item); void onAction(Activity context, T item);
} }
...@@ -65,7 +65,7 @@ public class CameraActivity extends AppCompatActivity { ...@@ -65,7 +65,7 @@ public class CameraActivity extends AppCompatActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(CameraActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(CameraActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
...@@ -91,7 +91,7 @@ public class CameraActivity extends AppCompatActivity { ...@@ -91,7 +91,7 @@ public class CameraActivity extends AppCompatActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(CameraActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(CameraActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
......
...@@ -102,7 +102,7 @@ public class DefineStyleActivity extends AppCompatActivity { ...@@ -102,7 +102,7 @@ public class DefineStyleActivity extends AppCompatActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(DefineStyleActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(DefineStyleActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
......
...@@ -113,7 +113,7 @@ public class SobotAlbumActivity extends SobotBaseActivity { ...@@ -113,7 +113,7 @@ public class SobotAlbumActivity extends SobotBaseActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(SobotAlbumActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(SobotAlbumActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
...@@ -147,7 +147,7 @@ public class SobotAlbumActivity extends SobotBaseActivity { ...@@ -147,7 +147,7 @@ public class SobotAlbumActivity extends SobotBaseActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(SobotAlbumActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(SobotAlbumActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
...@@ -234,7 +234,7 @@ public class SobotAlbumActivity extends SobotBaseActivity { ...@@ -234,7 +234,7 @@ public class SobotAlbumActivity extends SobotBaseActivity {
.onCancel(new Action<String>() { .onCancel(new Action<String>() {
@Override @Override
public void onAction(@NonNull String result) { public void onAction(@NonNull String result) {
Toast.makeText(SobotAlbumActivity.this, R.string.canceled, Toast.LENGTH_LONG).show(); Toast.makeText(SobotAlbumActivity.this, R.string.sobot_canceled, Toast.LENGTH_LONG).show();
} }
}) })
.start(); .start();
......
...@@ -25,7 +25,6 @@ import com.sobot.album.SobotAlbum; ...@@ -25,7 +25,6 @@ import com.sobot.album.SobotAlbum;
import com.sobot.album.api.widget.Widget; import com.sobot.album.api.widget.Widget;
import com.sobot.album.app.Contract; import com.sobot.album.app.Contract;
import com.sobot.album.app.gallery.GalleryView; import com.sobot.album.app.gallery.GalleryView;
import com.sobot.album.util.AlbumUtils;
import com.sobot.widget.ui.base.SobotBaseActivity; import com.sobot.widget.ui.base.SobotBaseActivity;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -2,7 +2,6 @@ package com.sobot.album.app.fragment; ...@@ -2,7 +2,6 @@ package com.sobot.album.app.fragment;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -10,7 +9,6 @@ import android.view.SoundEffectConstants; ...@@ -10,7 +9,6 @@ import android.view.SoundEffectConstants;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -18,21 +16,17 @@ import androidx.fragment.app.Fragment; ...@@ -18,21 +16,17 @@ import androidx.fragment.app.Fragment;
import com.sobot.album.AlbumFile; import com.sobot.album.AlbumFile;
import com.sobot.album.R; import com.sobot.album.R;
import com.sobot.album.SobotAlbum;
import com.sobot.album.widget.photoview.AttacherImageView; import com.sobot.album.widget.photoview.AttacherImageView;
import com.sobot.album.widget.photoview.PhotoViewAttacher; import com.sobot.album.widget.photoview.PhotoViewAttacher;
import com.sobot.common.utils.SobotImageUtils; import com.sobot.common.utils.SobotImageUtils;
import com.sobot.common.utils.SobotPathManager; import com.sobot.common.utils.SobotPathManager;
import com.sobot.network.http.HttpBaseUtils; import com.sobot.network.http.HttpBaseUtils;
import com.sobot.pictureframe.SobotBitmapUtil; import com.sobot.pictureframe.SobotBitmapUtil;
import com.sobot.utils.SobotDensityUtil;
import com.sobot.utils.SobotLogUtils; import com.sobot.utils.SobotLogUtils;
import com.sobot.utils.SobotMD5Util; import com.sobot.utils.SobotMD5Util;
import com.sobot.utils.SobotStringUtils; import com.sobot.utils.SobotStringUtils;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class ImageFragment extends Fragment implements PhotoViewAttacher.OnViewTapListener, View.OnLongClickListener { public class ImageFragment extends Fragment implements PhotoViewAttacher.OnViewTapListener, View.OnLongClickListener {
private View mRootView; private View mRootView;
......
...@@ -29,8 +29,6 @@ import com.sobot.album.R; ...@@ -29,8 +29,6 @@ import com.sobot.album.R;
import com.sobot.album.SobotAlbum; import com.sobot.album.SobotAlbum;
import com.sobot.utils.SobotStringUtils; import com.sobot.utils.SobotStringUtils;
import java.io.IOException;
public class VideoFragment extends Fragment { public class VideoFragment extends Fragment {
private View mRootView; private View mRootView;
private VideoView mVideoView; private VideoView mVideoView;
......
...@@ -25,7 +25,6 @@ import com.sobot.album.SobotAlbum; ...@@ -25,7 +25,6 @@ import com.sobot.album.SobotAlbum;
import com.sobot.album.api.widget.Widget; import com.sobot.album.api.widget.Widget;
import com.sobot.album.app.Contract; import com.sobot.album.app.Contract;
import com.sobot.album.mvp.SobotAlbumBaseActivity; import com.sobot.album.mvp.SobotAlbumBaseActivity;
import com.sobot.album.util.AlbumUtils;
import java.util.ArrayList; import java.util.ArrayList;
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
package com.sobot.album.app.preview; package com.sobot.album.app.preview;
import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -28,7 +27,6 @@ import com.sobot.album.AlbumFile; ...@@ -28,7 +27,6 @@ import com.sobot.album.AlbumFile;
import com.sobot.album.ItemAction; import com.sobot.album.ItemAction;
import com.sobot.album.R; import com.sobot.album.R;
import com.sobot.album.SobotAlbum; import com.sobot.album.SobotAlbum;
import com.sobot.album.api.widget.Widget;
import com.sobot.album.app.Contract; import com.sobot.album.app.Contract;
import com.sobot.album.mvp.SobotAlbumBaseActivity; import com.sobot.album.mvp.SobotAlbumBaseActivity;
...@@ -46,7 +44,7 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont ...@@ -46,7 +44,7 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont
public static ItemAction<AlbumFile> sClick; public static ItemAction<AlbumFile> sClick;
public static ItemAction<AlbumFile> sLongClick; public static ItemAction<AlbumFile> sLongClick;
private Widget mWidget; // private Widget mWidget;
private Contract.GalleryView<AlbumFile> mView; private Contract.GalleryView<AlbumFile> mView;
private ArrayList<AlbumFile> mAlbumFiles;//预览的图片和视频 private ArrayList<AlbumFile> mAlbumFiles;//预览的图片和视频
...@@ -67,6 +65,7 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont ...@@ -67,6 +65,7 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont
@Override @Override
protected void initView() { protected void initView() {
changeAppLanguage();
mView = new PreviewView<>(this, getSupportFragmentManager(), this); mView = new PreviewView<>(this, getSupportFragmentManager(), this);
this.fragmentManager = getSupportFragmentManager(); this.fragmentManager = getSupportFragmentManager();
this.mViewPager = findViewById(R.id.view_pager); this.mViewPager = findViewById(R.id.view_pager);
...@@ -76,11 +75,11 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont ...@@ -76,11 +75,11 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont
this.sobot_tv_page = findViewById(R.id.sobot_tv_page); this.sobot_tv_page = findViewById(R.id.sobot_tv_page);
this.sobot_tv_download.setOnClickListener(this); this.sobot_tv_download.setOnClickListener(this);
this.mLayoutLayer.setOnClickListener(this); this.mLayoutLayer.setOnClickListener(this);
Bundle argument = getIntent().getExtras(); // mWidget = Widget.getDefaultWidget(this);
assert argument != null; if(getIntent()!=null) {
mWidget = argument.getParcelable(SobotAlbum.KEY_INPUT_WIDGET); mAlbumFiles = getIntent().getParcelableArrayListExtra(SobotAlbum.KEY_INPUT_CHECKED_LIST);
mAlbumFiles = argument.getParcelableArrayList(SobotAlbum.KEY_INPUT_CHECKED_LIST); mCurrentPosition = getIntent().getIntExtra(SobotAlbum.KEY_INPUT_CURRENT_POSITION, 0);
mCurrentPosition = argument.getInt(SobotAlbum.KEY_INPUT_CURRENT_POSITION, 0); }
mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override @Override
public void onPageSelected(int position) { public void onPageSelected(int position) {
...@@ -90,7 +89,6 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont ...@@ -90,7 +89,6 @@ public class PreviewAlbumActivity extends SobotAlbumBaseActivity implements Cont
} }
} }
}); });
mView.setupViews(mWidget, true);
if (mCurrentPosition == 0) { if (mCurrentPosition == 0) {
onCurrentChanged(mCurrentPosition); onCurrentChanged(mCurrentPosition);
} else { } else {
......
...@@ -66,6 +66,7 @@ public abstract class SobotAlbumBaseActivity extends SobotBaseActivity implement ...@@ -66,6 +66,7 @@ public abstract class SobotAlbumBaseActivity extends SobotBaseActivity implement
@Override @Override
public final void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { public final void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (isGrantedResult(grantResults)) onPermissionGranted(requestCode); if (isGrantedResult(grantResults)) onPermissionGranted(requestCode);
else onPermissionDenied(requestCode); else onPermissionDenied(requestCode);
} }
......
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<string name="btn_gallery_preview">Preview Network Image</string> <string name="btn_gallery_preview">Preview Network Image</string>
<string name="checkable">Checkable Options</string> <string name="checkable">Checkable Options</string>
<string name="canceled">Canceled</string> <string name="sobot_canceled">Canceled</string>
<string name="no_selected">Please select, first.</string> <string name="no_selected">Please select, first.</string>
<string name="hint_image_preview_click">Click on a item to preview them.</string> <string name="hint_image_preview_click">Click on a item to preview them.</string>
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
<string name="menu_preview">图库</string> <string name="menu_preview">图库</string>
<string name="btn_gallery_preview">预览网络图像</string> <string name="btn_gallery_preview">预览网络图像</string>
<string name="checkable">可检查选项</string> <string name="checkable">可检查选项</string>
<string name="canceled">已取消</string> <string name="sobot_canceled">已取消</string>
<string name="no_selected">请先选择</string> <string name="no_selected">请先选择</string>
<string name="hint_image_preview_click">单击项目以预览它们</string> <string name="hint_image_preview_click">单击项目以预览它们</string>
<string name="hint_filter_after_visibility">是否显示了筛选的文件</string> <string name="hint_filter_after_visibility">是否显示了筛选的文件</string>
......
...@@ -97,6 +97,11 @@ ...@@ -97,6 +97,11 @@
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">90dp</item> <item name="android:layout_height">90dp</item>
</style> </style>
<style name="sobot_activity_def_theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="Button"> <style name="Button">
......
...@@ -6,14 +6,14 @@ android { ...@@ -6,14 +6,14 @@ android {
compileSdkVersion 34 compileSdkVersion 34
defaultConfig { defaultConfig {
minSdkVersion 14 minSdkVersion 19
//添加此行 //添加此行
multiDexEnabled true multiDexEnabled true
} }
//这里就是打jar包 //这里就是打jar包
task makeJar(type: Copy) { task makeJar(type: Copy) {
//删除旧的jar包 //删除旧的jar包
delete 'build/libs/sobot_common_x_2.2.1.jar' delete 'build/libs/sobot_common_x_2.3.0.jar'
//原地址 //原地址
from('build/intermediates/packaged-classes/release/') from('build/intermediates/packaged-classes/release/')
//导出jar包的地址 //导出jar包的地址
...@@ -21,7 +21,7 @@ android { ...@@ -21,7 +21,7 @@ android {
//包含的jar包 //包含的jar包
include('classes.jar') include('classes.jar')
//重命名jar包为mysdk //重命名jar包为mysdk
rename('classes.jar', 'sobot_common_x_2.2.1.jar') rename('classes.jar', 'sobot_common_x_2.3.0.jar')
} }
makeJar.dependsOn(build) makeJar.dependsOn(build)
} }
...@@ -34,6 +34,7 @@ dependencies { ...@@ -34,6 +34,7 @@ dependencies {
// api project(':sobot_network') // api project(':sobot_network')
// api project(':sobot_gson') // api project(':sobot_gson')
api 'org.greenrobot:eventbus:3.3.1'
api 'com.sobot.library:utils:1.1.3' api 'com.sobot.library:utils:1.1.3'
api 'com.sobot.library:picture_x:1.2.5' api 'com.sobot.library:picture_x:1.2.5'
......
...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) { ...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) {
ext { ext {
PUBLISH_GROUP_ID = "com.sobot.library" //项目包名 PUBLISH_GROUP_ID = "com.sobot.library" //项目包名
PUBLISH_ARTIFACT_ID = 'sobotcommon_x' //项目名 PUBLISH_ARTIFACT_ID = 'sobotcommon_x' //项目名
PUBLISH_VERSION = '2.2.2' //版本号 PUBLISH_VERSION = '2.3.0' //版本号
} }
......
...@@ -3,6 +3,7 @@ package com.sobot.common.login; ...@@ -3,6 +3,7 @@ package com.sobot.common.login;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import com.sobot.common.login.model.SobotServiceInfoModel;
import com.sobot.network.http.SobotOkHttpUtils; import com.sobot.network.http.SobotOkHttpUtils;
import com.sobot.network.http.builder.PostFormBuilder; import com.sobot.network.http.builder.PostFormBuilder;
import com.sobot.network.http.builder.PostMultipartFormBuilder; import com.sobot.network.http.builder.PostMultipartFormBuilder;
...@@ -13,6 +14,7 @@ import com.sobot.network.http.log.SobotNetLogUtils; ...@@ -13,6 +14,7 @@ import com.sobot.network.http.log.SobotNetLogUtils;
import com.sobot.network.http.request.RequestCall; import com.sobot.network.http.request.RequestCall;
import com.sobot.network.http.upload.SobotUpload; import com.sobot.network.http.upload.SobotUpload;
import com.sobot.network.http.upload.SobotUploadTask; import com.sobot.network.http.upload.SobotUploadTask;
import com.sobot.utils.SobotSharedPreferencesUtil;
import com.sobot.utils.SobotStringUtils; import com.sobot.utils.SobotStringUtils;
import org.json.JSONObject; import org.json.JSONObject;
...@@ -42,6 +44,12 @@ public class SobotCommonHttpUtils { ...@@ -42,6 +44,12 @@ public class SobotCommonHttpUtils {
} }
private static String getTokenId(Context context) { private static String getTokenId(Context context) {
if (context != null && SobotLoginTools.getInstance().getServiceInfo() == null) {
SobotServiceInfoModel mServiceInfoModel = SobotSharedPreferencesUtil.getInstance(context).get(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, SobotServiceInfoModel.class);
if (mServiceInfoModel != null) {
SobotLoginTools.getInstance().setServiceInfo(mServiceInfoModel);
}
}
String token = SobotLoginTools.getInstance().getToken(); String token = SobotLoginTools.getInstance().getToken();
return token; return token;
} }
......
package com.sobot.common.model;
public class SobotLanguageVersion {
/**
* "projectCode": "android",
* "langType": "zh",
* "timestamp": 1744006915549,
* "version": 1742985785852,
*/
private String projectCode;
//语言类型 zh
private String langType;
//请求的时间戳
private long timestamp;
//版本号,比较是否更新本地资源
private long version;
public String getProjectCode() {
return projectCode;
}
public void setProjectCode(String projectCode) {
this.projectCode = projectCode;
}
public String getLangType() {
return langType;
}
public void setLangType(String langType) {
this.langType = langType;
}
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
}
package com.sobot.common.utils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class SobotCommonBase64 {
private static final char[] legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
.toCharArray();
public static String encode(byte[] data) {
int start = 0;
int len = data.length;
StringBuffer buf = new StringBuffer(data.length * 3 / 2);
int end = len - 3;
int i = start;
int n = 0;
while (i <= end) {
int d = ((((int) data[i]) & 0x0ff) << 16)
| ((((int) data[i + 1]) & 0x0ff) << 8)
| (((int) data[i + 2]) & 0x0ff);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append(legalChars[d & 63]);
i += 3;
if (n++ >= 14) {
n = 0;
buf.append(" ");
}
}
if (i == start + len - 2) {
int d = ((((int) data[i]) & 0x0ff) << 16)
| ((((int) data[i + 1]) & 255) << 8);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append("=");
} else if (i == start + len - 1) {
int d = (((int) data[i]) & 0x0ff) << 16;
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append("==");
}
return buf.toString();
}
private static int decode(char c) {
if (c >= 'A' && c <= 'Z')
return ((int) c) - 65;
else if (c >= 'a' && c <= 'z')
return ((int) c) - 97 + 26;
else if (c >= '0' && c <= '9')
return ((int) c) - 48 + 26 + 26;
else
switch (c) {
case '+' :
return 62;
case '/' :
return 63;
case '=' :
return 0;
default :
throw new RuntimeException("unexpected code: " + c);
}
}
public static byte[] decode(String s) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
decode(s, bos);
} catch (IOException e) {
throw new RuntimeException();
}
byte[] decodedBytes = bos.toByteArray();
try {
bos.close();
bos = null;
} catch (IOException ex) {
System.err.println("Error while decoding BASE64: " + ex.toString());
}
return decodedBytes;
}
private static void decode(String s, OutputStream os) throws IOException {
int i = 0;
int len = s.length();
while (true) {
while (i < len && s.charAt(i) <= ' ')
i++;
if (i == len)
break;
int tri = (decode(s.charAt(i)) << 18)
+ (decode(s.charAt(i + 1)) << 12)
+ (decode(s.charAt(i + 2)) << 6)
+ (decode(s.charAt(i + 3)));
os.write((tri >> 16) & 255);
if (s.charAt(i + 2) == '=')
break;
os.write((tri >> 8) & 255);
if (s.charAt(i + 3) == '=')
break;
os.write(tri & 255);
i += 4;
}
}
}
\ No newline at end of file
package com.sobot.common.utils;
import android.content.Context;
import android.content.SharedPreferences;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.StreamCorruptedException;
public class SobotCommonSPUtil {
private static SharedPreferences sharedPreferences;
private static String CONFIG = "sobot_common";
public static void saveStringData(Context context, String key, String value) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
sharedPreferences.edit().putString(key, value).commit();
}
public static String getStringData(Context context, String key) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
return sharedPreferences.getString(key, "");
}
public static void saveLongData(Context context, String key, long value) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
sharedPreferences.edit().putLong(key, value).commit();
}
public static long getLongData(Context context, String key) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
return sharedPreferences.getLong(key,0);
}
public static void saveBooleanData(Context context, String key, boolean value) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
sharedPreferences.edit().putBoolean(key, value).commit();
}
public static Boolean getBooleanData(Context context, String key,
Boolean defValue) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG,
Context.MODE_PRIVATE);
}
return sharedPreferences.getBoolean(key, defValue);
}
//save object
public static void saveObject(Context context, String key ,Object obj){
SharedPreferences preferences = context.getSharedPreferences("base64",
Context.MODE_PRIVATE);
//创建字节输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
//创建对象输出流,并封装字节流
ObjectOutputStream oos = new ObjectOutputStream(baos);
//将对象写入字节流
oos.writeObject(obj);
//将字节流编码成base64的字符窜
String productBase64 = new String(SobotCommonBase64.encode(baos
.toByteArray()));
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, productBase64);
editor.commit();
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
}
}
public static Object getObjectByKey(Context context, String key){
SharedPreferences preferences = context.getSharedPreferences("base64",
Context.MODE_PRIVATE);
String productBase64 = preferences.getString(key, null);
if (productBase64 == null) {
return null;
}
//读取字节
byte[] base64 = SobotCommonBase64.decode(productBase64);
//封装到字节流
ByteArrayInputStream bais = new ByteArrayInputStream(base64);
try {
//再次封装
ObjectInputStream bis = new ObjectInputStream(bais);
try {
//读取对象
return bis.readObject();
} catch (ClassNotFoundException e) {
// Auto-generated catch block
e.printStackTrace();
}
} catch (StreamCorruptedException e) {
// Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void saveIntData(Context context, String key, int value) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
}
sharedPreferences.edit().putInt(key, value).commit();
}
public static int getIntData(Context context, String key, int defValue) {
if (sharedPreferences == null) {
sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
}
return sharedPreferences.getInt(key, defValue);
}
public static void removeKey(Context context,String key){
if(sharedPreferences == null){
sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
}
sharedPreferences.edit().remove(key).commit();
}
}
\ No newline at end of file
package com.sobot.common.utils;
import org.greenrobot.eventbus.EventBus;
public class SobotEventBusUtils {
private SobotEventBusUtils() {
// 私有构造防止实例化
}
/**
* 注册事件
*/
public static void register(Object subscriber) {
if (!EventBus.getDefault().isRegistered(subscriber)) {
EventBus.getDefault().register(subscriber);
}
}
/**
* 解注册事件
*/
public static void unregister(Object subscriber) {
if (EventBus.getDefault().isRegistered(subscriber)) {
EventBus.getDefault().unregister(subscriber);
}
}
/**
* 发送普通事件
*/
public static void post(Object event) {
EventBus.getDefault().post(event);
}
/**
* 发送粘滞事件(Sticky Event)
*/
public static void postSticky(Object event) {
EventBus.getDefault().postSticky(event);
}
/**
* 获取粘滞事件(用于获取已发送的 Sticky Event)
*/
public static <T> T getStickyEvent(Class<T> eventType) {
return EventBus.getDefault().getStickyEvent(eventType);
}
/**
* 移除指定类型的粘滞事件
*/
public static <T> void removeStickyEvent(Class<T> eventType) {
EventBus.getDefault().removeStickyEvent(eventType);
}
/**
* 移除所有粘滞事件
*/
public static void removeAllStickyEvents() {
EventBus.getDefault().removeAllStickyEvents();
}
}
...@@ -4,12 +4,26 @@ import android.content.Context; ...@@ -4,12 +4,26 @@ import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.os.Environment; import android.os.Environment;
import com.sobot.utils.SobotStringUtils;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.Map;
public class SobotResourceUtils { public class SobotResourceUtils {
public static Map<String,String> resource;
public static void setResource(Map<String, String> resource) {
SobotResourceUtils.resource = resource;
}
public static Map<String, String> getResource() {
return resource;
}
public static int getIdByName(Context context, String className, public static int getIdByName(Context context, String className,
String resName) { String resName) {
...@@ -37,7 +51,14 @@ public class SobotResourceUtils { ...@@ -37,7 +51,14 @@ public class SobotResourceUtils {
} }
public static String getResString(Context context, String name) { public static String getResString(Context context, String name) {
return context.getResources().getString(getResStrId(context, name)); String value ="";
if(resource!=null){
value = resource.get(name);
}
if(SobotStringUtils.isEmpty(value)){
value = context.getResources().getString(getResStrId(context, name));
}
return value;
} }
public static int getResId(Context context, String name) { public static int getResId(Context context, String name) {
...@@ -103,4 +124,48 @@ public class SobotResourceUtils { ...@@ -103,4 +124,48 @@ public class SobotResourceUtils {
} }
return stringBuffer.toString(); return stringBuffer.toString();
} }
/**
* 写入content到fileName
*
* @param fileName 文件路径
* @param content 写入的内容
* @param append 是否为append
*/
public static void writeStringToFile(String fileName, String content, boolean append) {
try {
checkFilePath(fileName);
//使用true,即进行append file
FileWriter fileWritter = new FileWriter(fileName, append);
fileWritter.write(content);
fileWritter.close();
System.out.println("finish");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void checkFilePath(String fileName) {
File file = new File(fileName.substring(0, fileName.lastIndexOf("/") + 1));
if (!file.isDirectory()) {
file.mkdirs();
}
file = new File(fileName);
if (!file.isFile()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} }
\ No newline at end of file
package com.sobot.common.utils;
import android.content.Context;
import com.sobot.utils.SobotStringUtils;
import java.util.HashMap;
import java.util.Map;
/**
* 下载的String 资源
*/
public class SobotStringResource {
public static Map<String,String> map = new HashMap<>();
public static String SOBOT_LANGUAGE_VERSION="sobot_language_version_";
public static String SOBOT_LANGUAGE_CODE="sobot_language_code_";
public static String getString(String str) {
if(map==null || map.isEmpty()){
return "";
}
String strValue = map.get(str);
if(SobotStringUtils.isEmpty(strValue)){
strValue = "";
}
return strValue;
}
public static String getString(Context context,String str) {
String strValue = map.get(str);
if(SobotStringUtils.isEmpty(strValue)){
strValue = context.getResources().getString(getIdByName(context,str));
}
return strValue;
}
public static int getIdByName(Context context, String resName) {
context = context.getApplicationContext();
String packageName = context.getPackageName();
int indentify = context.getResources().getIdentifier(resName,
"string", packageName);
return indentify;
}
public static void setMap(Map<String, String> map) {
SobotStringResource.map = map;
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest package="com.sobot.network">
package="com.sobot.network">
</manifest> </manifest>
\ No newline at end of file
...@@ -4,13 +4,12 @@ import android.content.Context; ...@@ -4,13 +4,12 @@ import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.text.TextUtils;
import android.widget.ImageView;
import androidx.annotation.DrawableRes; import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import android.text.TextUtils;
import android.widget.ImageView;
import com.facebook.common.executors.UiThreadImmediateExecutorService; import com.facebook.common.executors.UiThreadImmediateExecutorService;
import com.facebook.common.references.CloseableReference; import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource; import com.facebook.datasource.DataSource;
......
...@@ -2,13 +2,12 @@ package com.sobot.pictureframe; ...@@ -2,13 +2,12 @@ package com.sobot.pictureframe;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import androidx.annotation.DrawableRes;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.annotation.DrawableRes;
import com.bumptech.glide.BitmapRequestBuilder; import com.bumptech.glide.BitmapRequestBuilder;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
......
...@@ -2,14 +2,13 @@ package com.sobot.pictureframe; ...@@ -2,14 +2,13 @@ package com.sobot.pictureframe;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import androidx.annotation.DrawableRes;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.annotation.DrawableRes;
import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
......
...@@ -4,7 +4,7 @@ android { ...@@ -4,7 +4,7 @@ android {
compileSdkVersion 34 compileSdkVersion 34
defaultConfig { defaultConfig {
minSdkVersion 17 minSdkVersion 19
//添加此行 //添加此行
multiDexEnabled true multiDexEnabled true
} }
......
...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) { ...@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) {
ext { ext {
PUBLISH_GROUP_ID = "com.sobot.library" //项目包名 PUBLISH_GROUP_ID = "com.sobot.library" //项目包名
PUBLISH_ARTIFACT_ID = 'widget_x' //项目名 PUBLISH_ARTIFACT_ID = 'widget_x' //项目名
PUBLISH_VERSION = '1.3.2' //版本号 PUBLISH_VERSION = '2.0.0' //版本号
} }
......
package androidx.lifecycle; package androidx.lifecycle;
import static androidx.lifecycle.Lifecycle.State.CREATED;
import static androidx.lifecycle.Lifecycle.State.DESTROYED;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import static androidx.lifecycle.Lifecycle.State.CREATED;
import static androidx.lifecycle.Lifecycle.State.DESTROYED;
/** /**
* Created by liaohailiang on 2019/3/7. * Created by liaohailiang on 2019/3/7.
*/ */
......
package com.sobot.widget.livedatabus.core; package com.sobot.widget.livedatabus.core;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.sobot.widget.livedatabus.logger.Logger; import com.sobot.widget.livedatabus.logger.Logger;
......
...@@ -4,14 +4,6 @@ import static android.content.Context.RECEIVER_EXPORTED; ...@@ -4,14 +4,6 @@ import static android.content.Context.RECEIVER_EXPORTED;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Application; import android.app.Application;
import androidx.lifecycle.ExternalLiveData;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.os.Build; import android.os.Build;
...@@ -21,6 +13,11 @@ import android.os.Looper; ...@@ -21,6 +13,11 @@ import android.os.Looper;
import androidx.annotation.MainThread; import androidx.annotation.MainThread;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.ExternalLiveData;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import com.sobot.widget.livedatabus.ipc.consts.IpcConst; import com.sobot.widget.livedatabus.ipc.consts.IpcConst;
import com.sobot.widget.livedatabus.ipc.core.ProcessorManager; import com.sobot.widget.livedatabus.ipc.core.ProcessorManager;
...@@ -541,7 +538,7 @@ public final class LiveEventBusCore { ...@@ -541,7 +538,7 @@ public final class LiveEventBusCore {
preventNextEvent = false; preventNextEvent = false;
return; return;
} }
logger.log(Level.INFO, "message received: " + t); logger.log(Level.INFO, "live_eventbus message received: " + t);
try { try {
observer.onChanged(t); observer.onChanged(t);
} catch (ClassCastException e) { } catch (ClassCastException e) {
......
package com.sobot.widget.livedatabus.core; package com.sobot.widget.livedatabus.core;
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.annotation.NonNull;
public interface Observable<T> { public interface Observable<T> {
......
...@@ -7,10 +7,11 @@ import android.app.Application; ...@@ -7,10 +7,11 @@ import android.app.Application;
import android.app.Application.ActivityLifecycleCallbacks; import android.app.Application.ActivityLifecycleCallbacks;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import androidx.core.content.FileProvider;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import androidx.core.content.FileProvider;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.HashMap; import java.util.HashMap;
......
...@@ -21,8 +21,6 @@ import android.app.Fragment; ...@@ -21,8 +21,6 @@ import android.app.Fragment;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.DrawableRes;
import androidx.annotation.LayoutRes;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -32,6 +30,9 @@ import android.widget.FrameLayout; ...@@ -32,6 +30,9 @@ import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.LayoutRes;
import com.sobot.widget.R; import com.sobot.widget.R;
import java.util.HashMap; import java.util.HashMap;
......
...@@ -24,15 +24,6 @@ import android.graphics.Paint; ...@@ -24,15 +24,6 @@ import android.graphics.Paint;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.NestedScrollingChildHelper;
import androidx.core.view.NestedScrollingParent;
import androidx.core.view.NestedScrollingParentHelper;
import androidx.core.view.ViewCompat;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent; import android.view.MotionEvent;
...@@ -48,6 +39,16 @@ import android.widget.Scroller; ...@@ -48,6 +39,16 @@ import android.widget.Scroller;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.NestedScrollingChildHelper;
import androidx.core.view.NestedScrollingParent;
import androidx.core.view.NestedScrollingParentHelper;
import androidx.core.view.ViewCompat;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshComponent; import com.sobot.widget.refresh.layout.api.RefreshComponent;
import com.sobot.widget.refresh.layout.api.RefreshContent; import com.sobot.widget.refresh.layout.api.RefreshContent;
......
...@@ -4,10 +4,11 @@ import static androidx.annotation.RestrictTo.Scope.LIBRARY; ...@@ -4,10 +4,11 @@ import static androidx.annotation.RestrictTo.Scope.LIBRARY;
import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP; import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
import static androidx.annotation.RestrictTo.Scope.SUBCLASSES; import static androidx.annotation.RestrictTo.Scope.SUBCLASSES;
import android.view.View;
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo; import androidx.annotation.RestrictTo;
import android.view.View;
import com.sobot.widget.refresh.layout.constant.SpinnerStyle; import com.sobot.widget.refresh.layout.constant.SpinnerStyle;
import com.sobot.widget.refresh.layout.listener.OnStateChangedListener; import com.sobot.widget.refresh.layout.listener.OnStateChangedListener;
......
package com.sobot.widget.refresh.layout.api; package com.sobot.widget.refresh.layout.api;
import android.animation.ValueAnimator.AnimatorUpdateListener; import android.animation.ValueAnimator.AnimatorUpdateListener;
import androidx.annotation.NonNull;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.listener.ScrollBoundaryDecider; import com.sobot.widget.refresh.layout.listener.ScrollBoundaryDecider;
/** /**
......
package com.sobot.widget.refresh.layout.api; package com.sobot.widget.refresh.layout.api;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import androidx.annotation.NonNull;
import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.constant.RefreshState; import com.sobot.widget.refresh.layout.constant.RefreshState;
......
package com.sobot.widget.refresh.layout.api; package com.sobot.widget.refresh.layout.api;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes; import androidx.annotation.ColorRes;
import androidx.annotation.FloatRange; import androidx.annotation.FloatRange;
import androidx.annotation.IdRes; import androidx.annotation.IdRes;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
import com.sobot.widget.refresh.layout.constant.RefreshState; import com.sobot.widget.refresh.layout.constant.RefreshState;
import com.sobot.widget.refresh.layout.listener.OnLoadMoreListener; import com.sobot.widget.refresh.layout.listener.OnLoadMoreListener;
......
...@@ -7,6 +7,7 @@ import android.graphics.Path; ...@@ -7,6 +7,7 @@ import android.graphics.Path;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.Animatable; import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
/** /**
......
...@@ -4,6 +4,7 @@ import android.graphics.Canvas; ...@@ -4,6 +4,7 @@ import android.graphics.Canvas;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.drawable.PaintDrawable; import com.sobot.widget.refresh.layout.drawable.PaintDrawable;
......
...@@ -7,17 +7,18 @@ import android.graphics.Bitmap; ...@@ -7,17 +7,18 @@ import android.graphics.Bitmap;
import android.graphics.drawable.Animatable; import android.graphics.drawable.Animatable;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshComponent; import com.sobot.widget.refresh.layout.api.RefreshComponent;
import com.sobot.widget.refresh.layout.api.RefreshKernel; import com.sobot.widget.refresh.layout.api.RefreshKernel;
......
...@@ -2,13 +2,14 @@ package com.sobot.widget.refresh.layout.footer; ...@@ -2,13 +2,14 @@ package com.sobot.widget.refresh.layout.footer;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.View; import android.view.View;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshFooter; import com.sobot.widget.refresh.layout.api.RefreshFooter;
import com.sobot.widget.refresh.layout.api.RefreshLayout; import com.sobot.widget.refresh.layout.api.RefreshLayout;
......
...@@ -6,11 +6,6 @@ import android.annotation.SuppressLint; ...@@ -6,11 +6,6 @@ import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.View; import android.view.View;
...@@ -19,6 +14,12 @@ import android.widget.LinearLayout; ...@@ -19,6 +14,12 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshHeader; import com.sobot.widget.refresh.layout.api.RefreshHeader;
import com.sobot.widget.refresh.layout.api.RefreshLayout; import com.sobot.widget.refresh.layout.api.RefreshLayout;
...@@ -33,7 +34,6 @@ import java.text.DateFormat; ...@@ -33,7 +34,6 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale;
/** /**
* 经典下拉头部 * 经典下拉头部
......
package com.sobot.widget.refresh.layout.listener; package com.sobot.widget.refresh.layout.listener;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.api.RefreshFooter; import com.sobot.widget.refresh.layout.api.RefreshFooter;
......
package com.sobot.widget.refresh.layout.listener; package com.sobot.widget.refresh.layout.listener;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.api.RefreshHeader; import com.sobot.widget.refresh.layout.api.RefreshHeader;
......
package com.sobot.widget.refresh.layout.listener; package com.sobot.widget.refresh.layout.listener;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.sobot.widget.refresh.layout.api.RefreshLayout; import com.sobot.widget.refresh.layout.api.RefreshLayout;
......
...@@ -4,14 +4,15 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; ...@@ -4,14 +4,15 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.sobot.widget.refresh.layout.SobotRefreshLayout; import com.sobot.widget.refresh.layout.SobotRefreshLayout;
import com.sobot.widget.refresh.layout.api.RefreshComponent; import com.sobot.widget.refresh.layout.api.RefreshComponent;
import com.sobot.widget.refresh.layout.api.RefreshFooter; import com.sobot.widget.refresh.layout.api.RefreshFooter;
......
...@@ -6,13 +6,6 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; ...@@ -6,13 +6,6 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.PointF; import android.graphics.PointF;
import android.os.Build; import android.os.Build;
import androidx.annotation.NonNull;
import androidx.core.view.NestedScrollingChild;
import androidx.core.view.NestedScrollingParent;
import androidx.core.view.ScrollingView;
import androidx.viewpager.widget.ViewPager;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.Interpolator; import android.view.animation.Interpolator;
...@@ -21,6 +14,14 @@ import android.widget.AbsListView; ...@@ -21,6 +14,14 @@ import android.widget.AbsListView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ScrollView; import android.widget.ScrollView;
import androidx.annotation.NonNull;
import androidx.core.view.NestedScrollingChild;
import androidx.core.view.NestedScrollingParent;
import androidx.core.view.ScrollingView;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshComponent; import com.sobot.widget.refresh.layout.api.RefreshComponent;
......
...@@ -9,10 +9,6 @@ import static com.sobot.widget.refresh.layout.util.SmartUtil.scrollListBy; ...@@ -9,10 +9,6 @@ import static com.sobot.widget.refresh.layout.util.SmartUtil.scrollListBy;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener; import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.graphics.PointF; import android.graphics.PointF;
import androidx.annotation.NonNull;
import androidx.core.view.NestedScrollingChild;
import androidx.core.view.NestedScrollingParent;
import androidx.viewpager.widget.ViewPager;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
...@@ -21,6 +17,11 @@ import android.widget.AbsListView; ...@@ -21,6 +17,11 @@ import android.widget.AbsListView;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.Space; import android.widget.Space;
import androidx.annotation.NonNull;
import androidx.core.view.NestedScrollingChild;
import androidx.core.view.NestedScrollingParent;
import androidx.viewpager.widget.ViewPager;
import com.sobot.widget.R; import com.sobot.widget.R;
import com.sobot.widget.refresh.layout.api.RefreshContent; import com.sobot.widget.refresh.layout.api.RefreshContent;
import com.sobot.widget.refresh.layout.api.RefreshKernel; import com.sobot.widget.refresh.layout.api.RefreshKernel;
......
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
package com.sobot.widget.ui.calenderview; package com.sobot.widget.ui.calenderview;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
...@@ -19,12 +19,13 @@ package com.sobot.widget.ui.calenderview; ...@@ -19,12 +19,13 @@ package com.sobot.widget.ui.calenderview;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
import androidx.annotation.Nullable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import androidx.annotation.Nullable;
import java.util.List; import java.util.List;
/** /**
......
...@@ -26,8 +26,6 @@ import android.content.Context; ...@@ -26,8 +26,6 @@ import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.os.Bundle; import android.os.Bundle;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.VelocityTracker; import android.view.VelocityTracker;
...@@ -38,6 +36,9 @@ import android.view.animation.LinearInterpolator; ...@@ -38,6 +36,9 @@ import android.view.animation.LinearInterpolator;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.sobot.widget.R; import com.sobot.widget.R;
......
...@@ -20,9 +20,6 @@ import android.animation.AnimatorListenerAdapter; ...@@ -20,9 +20,6 @@ import android.animation.AnimatorListenerAdapter;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.ViewPager;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -30,6 +27,10 @@ import android.view.View; ...@@ -30,6 +27,10 @@ import android.view.View;
import android.view.animation.LinearInterpolator; import android.view.animation.LinearInterpolator;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.ViewPager;
import com.sobot.widget.R; import com.sobot.widget.R;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
......
...@@ -18,10 +18,10 @@ package com.sobot.widget.ui.calenderview; ...@@ -18,10 +18,10 @@ package com.sobot.widget.ui.calenderview;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.Color; import android.graphics.Color;
import androidx.annotation.Nullable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import androidx.annotation.Nullable;
import com.sobot.widget.R; import com.sobot.widget.R;
......
...@@ -17,14 +17,15 @@ package com.sobot.widget.ui.calenderview; ...@@ -17,14 +17,15 @@ package com.sobot.widget.ui.calenderview;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.List; import java.util.List;
......
...@@ -15,10 +15,6 @@ ...@@ -15,10 +15,6 @@
*/ */
package com.sobot.widget.ui.calenderview; package com.sobot.widget.ui.calenderview;
import android.content.Context;
import com.sobot.widget.R;
/** /**
* http://www.cnblogs.com/moodlxs/archive/2010/12/18/2345392.html * http://www.cnblogs.com/moodlxs/archive/2010/12/18/2345392.html
* 24节气计算公式,参考该博客实现 * 24节气计算公式,参考该博客实现
......
...@@ -17,14 +17,15 @@ package com.sobot.widget.ui.calenderview; ...@@ -17,14 +17,15 @@ package com.sobot.widget.ui.calenderview;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.List; import java.util.List;
......
...@@ -16,10 +16,11 @@ ...@@ -16,10 +16,11 @@
package com.sobot.widget.ui.calenderview; package com.sobot.widget.ui.calenderview;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.util.AttributeSet;
/** /**
......
...@@ -20,11 +20,12 @@ import android.graphics.Canvas; ...@@ -20,11 +20,12 @@ import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Rect; import android.graphics.Rect;
import androidx.annotation.Nullable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import androidx.annotation.Nullable;
import java.util.List; import java.util.List;
/** /**
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package com.sobot.widget.ui.calenderview; package com.sobot.widget.ui.calenderview;
import android.content.Context; import android.content.Context;
import androidx.recyclerview.widget.RecyclerView;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.recyclerview.widget.RecyclerView;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
final class YearViewAdapter extends BaseRecyclerAdapter<Month> { final class YearViewAdapter extends BaseRecyclerAdapter<Month> {
......
...@@ -17,9 +17,6 @@ package com.sobot.widget.ui.calenderview; ...@@ -17,9 +17,6 @@ package com.sobot.widget.ui.calenderview;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.Display; import android.view.Display;
import android.view.MotionEvent; import android.view.MotionEvent;
...@@ -27,6 +24,10 @@ import android.view.View; ...@@ -27,6 +24,10 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
/** /**
......
...@@ -2,11 +2,12 @@ package com.sobot.widget.ui.rich; ...@@ -2,11 +2,12 @@ package com.sobot.widget.ui.rich;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import androidx.core.app.ShareCompat;
import android.text.TextPaint; import android.text.TextPaint;
import android.text.style.ClickableSpan; import android.text.style.ClickableSpan;
import android.view.View; import android.view.View;
import androidx.core.app.ShareCompat;
public class EmailSpan extends ClickableSpan { public class EmailSpan extends ClickableSpan {
......
...@@ -5,13 +5,14 @@ import android.app.Activity; ...@@ -5,13 +5,14 @@ import android.app.Activity;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import androidx.annotation.ColorInt;
import androidx.annotation.IdRes;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import androidx.annotation.ColorInt;
import androidx.annotation.IdRes;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
......
...@@ -2,10 +2,11 @@ package com.sobot.widget.ui.statusbar; ...@@ -2,10 +2,11 @@ package com.sobot.widget.ui.statusbar;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import androidx.annotation.Nullable;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import androidx.annotation.Nullable;
/** /**
* @author 黄浩杭 (huanghaohang@parkingwang.com) * @author 黄浩杭 (huanghaohang@parkingwang.com)
* @version 2017-11-21 0.7 * @version 2017-11-21 0.7
......
...@@ -3,6 +3,7 @@ package com.sobot.widget.ui.utils; ...@@ -3,6 +3,7 @@ package com.sobot.widget.ui.utils;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.os.Environment; import android.os.Environment;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import java.io.BufferedReader; import java.io.BufferedReader;
......
...@@ -10,8 +10,9 @@ import android.net.Uri; ...@@ -10,8 +10,9 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.provider.MediaStore; import android.provider.MediaStore;
import androidx.fragment.app.Fragment;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import androidx.fragment.app.Fragment;
import com.sobot.utils.SobotIOUtils; import com.sobot.utils.SobotIOUtils;
import com.sobot.widget.ui.SobotBaseConstant; import com.sobot.widget.ui.SobotBaseConstant;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<string name="sobot_srl_header_loading">Wait For Loading…</string> <string name="sobot_srl_header_loading">Wait For Loading…</string>
<string name="sobot_srl_header_finish">Refresh Success</string> <string name="sobot_srl_header_finish">Refresh Success</string>
<string name="sobot_srl_header_failed">Refresh Failed</string> <string name="sobot_srl_header_failed">Refresh Failed</string>
<string name="sobot_srl_header_update">\'Last Update\' %s</string> <string name="sobot_srl_header_update">Last Update %s</string>
<string name="sobot_srl_header_secondary">Release To Second Floor</string> <string name="sobot_srl_header_secondary">Release To Second Floor</string>
<string name="sobot_no_data_string">No data</string> <string name="sobot_no_data_string">No data</string>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"> <resources>
<string name="sobot_sun">Sun</string> <string name="sobot_sun">Sun</string>
<string name="sobot_mon">Mon</string> <string name="sobot_mon">Mon</string>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"> <resources>
<string name="sobot_sun"></string> <string name="sobot_sun"></string>
<string name="sobot_mon"></string> <string name="sobot_mon"></string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment