Demo entry 6760399

mj

   

Submitted by anonymous on Sep 14, 2018 at 08:54
Language: Java. Code size: 29.2 kB.

package com.mjsheng.myappstore.activity;

import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.mjsheng.myappstore.MainActivity;
import com.mjsheng.myappstore.R;
import com.mjsheng.myappstore.base.BaseFragmentActivity;
import com.mjsheng.myappstore.base.MyApplication;
import com.mjsheng.myappstore.bean.AppInfo;
import com.mjsheng.myappstore.bean.UploadAppInfo;
import com.mjsheng.myappstore.dialog.ExitDialog;
import com.mjsheng.myappstore.fragment.BrandFragment;
import com.mjsheng.myappstore.fragment.CategoryPageFragment;
import com.mjsheng.myappstore.fragment.HomePageFragment;
import com.mjsheng.myappstore.fragment.ProjectFragment;
import com.mjsheng.myappstore.fragment.RankingPageFragment;
import com.mjsheng.myappstore.network.Network;
import com.mjsheng.myappstore.network.api.DeselectBrowserIDApi;
import com.mjsheng.myappstore.network.api.DeselectIDApi;
import com.mjsheng.myappstore.network.api.UploadAppInfoApi;
import com.mjsheng.myappstore.utils.Configure;
import com.mjsheng.myappstore.utils.Utils;
import com.mjsheng.myappstore.utils.update.AllDialogShowStrategy;
import com.mjsheng.myappstore.utils.update.NotificationDownloadCreator;
import com.mjsheng.myappstore.utils.update.OkhttpCheckWorker;
import com.mjsheng.myappstore.utils.update.ToastCallback;
import com.mjsheng.myappstore.widget.Sound;

import org.json.JSONObject;
import org.lzh.framework.updatepluginlib.UpdateBuilder;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import cn.jpush.android.api.JPushInterface;
import cn.jpush.android.api.TagAliasCallback;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import okhttp3.internal.Util;
import rx.Observable;
import rx.functions.Action1;


public class AppStoreActivity extends BaseFragmentActivity implements OnClickListener,
        OnCheckedChangeListener {

    private Fragment[] mFragments;
    private FragmentManager mFragmentManager;
    private ImageView mBackIv;
    private LinearLayout mAgeLl, mSearchLl;
    private RelativeLayout mHomeLl, mCategoryLl, mRatingLl, mSpecialLl, mBrandLl, mDownloadLl;
    private RelativeLayout mSelect = null;
    private String ageSystem;
    private Sound sound;
    private ExitDialog exitDialog = null;
    private View mHome_page_line, mCategory_line, mRating_line, mSpecial_line, mBrand_line;
    private View mSelectView;
    private TextView mHome_page_tv, mCategory_tv, mRating_tv, mSpecial_tv, mBrand_tv;
    private TextView mSelectTv;
    private ToastCallback callback;
    private Bundle savedInstanceState;
    private int fragmentTag = 0;
    private long mPreClickTime;

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        setContentView(R.layout.activity_appstore);
        initView(savedInstanceState, fragmentTag);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_appstore);
        this.savedInstanceState = savedInstanceState;
        MyApplication.addActivity(this);
        MyApplication.mainActivity = this;


        ageSystem = getIntent().getStringExtra("ageSystem");

        sound = new Sound(this);
        callback = new ToastCallback(this);
        initView(savedInstanceState, fragmentTag);
        initData();
    }

    private void initView(Bundle savedInstanceState, int fragmentTag) {

        setChangeBySystem();
        if (savedInstanceState == null) {
            mFragments = new Fragment[5];
            mFragmentManager = getSupportFragmentManager();
        }
        //        initManagePageFragment();
        mBackIv = (ImageView) findViewById(R.id.back_iv);
        mAgeLl = (LinearLayout) findViewById(R.id.age_selected_ll);
        mDownloadLl = (RelativeLayout) findViewById(R.id.download_ll);
        mSearchLl = (LinearLayout) findViewById(R.
                id.search_ll);
        mHomeLl = (RelativeLayout) findViewById(R.id.home_page_ll);
        mCategoryLl = (RelativeLayout) findViewById(R.id.category_ll);
        mRatingLl = (RelativeLayout) findViewById(R.id.rating_ll);
        mSpecialLl = (RelativeLayout) findViewById(R.id.special_ll);
        mBrandLl = (RelativeLayout) findViewById(R.id.brand_ll);

        mHome_page_line = (View) findViewById(R.id.home_page_line);
        mCategory_line = (View) findViewById(R.id.category_line);
        mRating_line = (View) findViewById(R.id.rating_line);
        mSpecial_line = (View) findViewById(R.id.special_line);
        mBrand_line = (View) findViewById(R.id.brand_line);

        mHome_page_tv = (TextView) findViewById(R.id.home_page_tv);
        mCategory_tv = (TextView) findViewById(R.id.category_tv);
        mRating_tv = (TextView) findViewById(R.id.rating_tv);
        mSpecial_tv = (TextView) findViewById(R.id.special_tv);
        mBrand_tv = (TextView) findViewById(R.id.brand_tv);

        mSelect = mCategoryLl;
        mSelectView = mCategory_line;
        mSelectTv = mCategory_tv;

        mBackIv.setOnClickListener(this);
        mAgeLl.setOnClickListener(this);
        mDownloadLl.setOnClickListener(this);
        mSearchLl.setOnClickListener(this);
        mHomeLl.setOnClickListener(this);
        mCategoryLl.setOnClickListener(this);
        mRatingLl.setOnClickListener(this);
        mSpecialLl.setOnClickListener(this);
        mBrandLl.setOnClickListener(this);

        Log.e("mjsehng", "fragmentTag====" + fragmentTag);
        switch (fragmentTag) {
            case 0:
                mHomeLl.performClick();
                break;
            case 1:
                mCategoryLl.performClick();
                break;
            case 2:
                mRatingLl.performClick();
                break;
            case 3:
                mSpecialLl.performClick();
                break;
            case 4:
                mBrandLl.performClick();
                break;
        }


    }

    private void initData() {
       lazyLoading();
    }

    private void lazyLoading() {
        Observable.timer(8000, TimeUnit.MILLISECONDS)
                .observeOn(rx.android.schedulers.AndroidSchedulers.mainThread())
                .subscribe(new Action1<Long>() {
                    @Override
                    public void call(Long aLong) {
                        initJpush();
                        update();
                        getDeselectBrowerID();
                        getDeselectID();
                        getAppInfo();
                    }
                });
    }
    @Override
    protected void onStop() {

        super.onStop();
    }

    public void setChangeBySystem() {
        if (ageSystem.equals("3")) {
            MyApplication.ageType = 1;
        } else if (ageSystem.equals("6")) {
            MyApplication.ageType = 2;
        } else if (ageSystem.equals("10")) {
            MyApplication.ageType = 3;
        } else {
            MyApplication.ageType = 1;
        }
    }

    /**
     * 预加载管理界面,以防这是点击下载,任务未能显示出来
     */
    private void initManagePageFragment() {
        if (mFragmentManager != null && mFragments != null) {
            FragmentTransaction transaction = mFragmentManager
                    .beginTransaction();
            transaction.commit();
        }
    }


    @Override
    protected void onResume() {
        super.onResume();
        Intent allIntent = new Intent();
        allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
        sendBroadcast(allIntent);
    }

    // 切换显示内容
    public void switchContent(int index) {
        FragmentTransaction transaction = mFragmentManager.beginTransaction();
        hideFragments(transaction);
        try {
            switch (index) {
                case 0:
                    if (mFragments[0] == null) {
                        // 首页 推荐页面
                        mFragments[0] = new HomePageFragment();

                        Bundle bundle = new Bundle();
                        bundle.putString("ageSystem", ageSystem);
                        mFragments[0].setArguments(bundle);
                        transaction.add(R.id.content,
                                mFragments[0], 0 + "");
                    } else {
                        transaction.show(mFragments[0]);
                        Intent allIntent = new Intent();
                        allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
                        sendBroadcast(allIntent);
                    }
                    break;
                case 1:
                    if (mFragments[1] == null) {
                        // 分类
                        mFragments[1] = new CategoryPageFragment();
                        transaction.add(R.id.content,
                                mFragments[1], 1 + "");
                    } else {
                        transaction.show(mFragments[1]);
                        Intent allIntent = new Intent();
                        allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
                        sendBroadcast(allIntent);
                    }
                    break;
                case 2:
                    if (mFragments[2] == null) {
                        // 排行   3个RadioButton
                        mFragments[2] = new RankingPageFragment();
                        transaction.add(R.id.content,
                                mFragments[2], 2 + "");
                    } else {
                        transaction.show(mFragments[2]);
                        Intent allIntent = new Intent();
                        allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
                        sendBroadcast(allIntent);
                    }
                    break;
                case 3:
                    if (mFragments[3] == null) {
                        // 专题
                        mFragments[3] = new ProjectFragment();
                        transaction.add(R.id.content,
                                mFragments[3], 3 + "");
                    } else {
                        transaction.show(mFragments[3]);
                    }
                    break;
                case 4:
                    if (mFragments[4] == null) {
                        // 品牌
                        mFragments[4] = new BrandFragment();
                        transaction.add(R.id.content,
                                mFragments[4], 4 + "");
                    } else {
                        transaction.show(mFragments[4]);
                    }
                    break;
            }
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 将所有的Fragment都置为隐藏状态。
    private void hideFragments(FragmentTransaction transaction) {
        if (mFragments != null) {
            for (int i = 0; i < mFragments.length; i++) {
                if (mFragments[i] != null) {
                    transaction.hide(mFragments[i]);
                }
            }
        }
    }


    @Override
    public void onClick(View v) {
        sound.playSoundEffect();
        switch (v.getId()) {
            case R.id.back_iv:
                if (exitDialog == null) {
                    exitDialog = new ExitDialog(this, new ExitDialog.PriorityListener() {
                        @Override
                        public void refreshPriorityUI(String string) {
                            if (string.equals("YES")) {
                                finish();
                            }
                        }
                    });
                    exitDialog.show();
                } else {
                    exitDialog.show();
                }
                break;
            // 搜索应用界面
            case R.id.search_ll:
                Intent intent = new Intent();
                intent.setClass(this, SearchActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                startActivity(intent);
                overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                break;
            // 下载界面
            case R.id.download_ll:
                Intent download = new Intent();
                download.setClass(this, DownloadActivity.class);
                download.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                startActivity(download);
                overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                break;
            // 设置界面
            case R.id.age_selected_ll:
                Intent setting = new Intent();
                setting.setClass(this, SettingActivity.class);
                setting.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                startActivity(setting);
                overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                break;
            case R.id.home_page_ll:
                fragmentTag = 0;
                switchContent(0);
                //                mHomeLl.setBackgroundResource(R.drawable.appstoreactivity_itembg);
                mHome_page_line.setVisibility(View.VISIBLE);
                //                mHome_page_tv.setTextColor(getResources().getColor(R.color.main_color));

                if (mSelect != mHomeLl) {
                    mSelect.setBackgroundResource(0);
                    mSelect = mHomeLl;

                    mSelectView.setVisibility(View.GONE);
                    mSelectView = mHome_page_line;

                    //                    mSelectTv.setTextColor(getResources().getColor(R.color.black));
                    mSelectTv = mHome_page_tv;
                }
                break;
            case R.id.category_ll:
                fragmentTag = 1;
                switchContent(1);
                //                mCategoryLl.setBackgroundResource(R.drawable.appstoreactivity_itembg);
                mCategory_line.setVisibility(View.VISIBLE);
                //                mCategory_tv.setTextColor(getResources().getColor(R.color.main_color));

                if (mSelect != mCategoryLl) {
                    mSelect.setBackgroundResource(0);
                    mSelect = mCategoryLl;

                    mSelectView.setVisibility(View.GONE);
                    mSelectView = mCategory_line;

                    //                    mSelectTv.setTextColor(getResources().getColor(R.color.black));
                    mSelectTv = mCategory_tv;
                }
                break;
            case R.id.rating_ll:
                fragmentTag = 2;
                switchContent(2);
                //                mRatingLl.setBackgroundResource(R.drawable.appstoreactivity_itembg);
                mRating_line.setVisibility(View.VISIBLE);
                //                mRating_tv.setTextColor(getResources().getColor(R.color.main_color));

                if (mSelect != mRatingLl) {
                    mSelect.setBackgroundResource(0);
                    mSelect = mRatingLl;

                    mSelectView.setVisibility(View.GONE);
                    mSelectView = mRating_line;

                    //                    mSelectTv.setTextColor(getResources().getColor(R.color.black));
                    mSelectTv = mRating_tv;
                }
                break;
            case R.id.special_ll:
                fragmentTag = 3;
                switchContent(3);
                //                mSpecialLl.setBackgroundResource(R.drawable.appstoreactivity_itembg);
                mSpecial_line.setVisibility(View.VISIBLE);
                //                mSpecial_tv.setTextColor(getResources().getColor(R.color.main_color));

                if (mSelect != mSpecialLl) {
                    mSelect.setBackgroundResource(0);
                    mSelect = mSpecialLl;

                    mSelectView.setVisibility(View.GONE);
                    mSelectView = mSpecial_line;

                    //                    mSelectTv.setTextColor(getResources().getColor(R.color.black));
                    mSelectTv = mSpecial_tv;
                }
                break;
            case R.id.brand_ll:
                fragmentTag = 4;
                switchContent(4);
                //                mBrandLl.setBackgroundResource(R.drawable.appstoreactivity_itembg);
                mBrand_line.setVisibility(View.VISIBLE);
                //                mBrand_tv.setTextColor(getResources().getColor(R.color.main_color));

                if (mSelect != mBrandLl) {
                    mSelect.setBackgroundResource(0);
                    mSelect = mBrandLl;

                    mSelectView.setVisibility(View.GONE);
                    mSelectView = mBrand_line;

                    //                    mSelectTv.setTextColor(getResources().getColor(R.color.black));
                    mSelectTv = mBrand_tv;
                }
                break;
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        sound.playSoundEffect();

    }


    //    public boolean onKeyDown(int keyCode, KeyEvent event) {
    //        if (keyCode == KeyEvent.KEYCODE_BACK) {
    //            if (exitDialog == null) {
    //                exitDialog = new ExitDialog(AppStoreActivity.this, new ExitDialog.PriorityListener() {
    //                    @Override
    //                    public void refreshPriorityUI(String string) {
    //                        if (string.equals("YES")) {
    //                            finish();
    //                            //                            moveTaskToBack(false);
    //                        }
    //                    }
    //                });
    //                exitDialog.show();
    //            } else {
    //                exitDialog.show();
    //            }
    //            return true;
    //        }
    //        return super.onKeyDown(keyCode, event);
    //    }

    @Override
    public void finish() {
        super.finish();
        overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
    }

    private void getAppInfo() {
        ArrayList<UploadAppInfo> appList = new ArrayList<UploadAppInfo>(); //用来存储获取的应用信息数据
        List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

        for (int i = 0; i < packages.size(); i++) {
            PackageInfo packageInfo = packages.get(i);
            UploadAppInfo uploadAppInfo = new UploadAppInfo();
            uploadAppInfo.setApp_name(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
            uploadAppInfo.setPackage_name(packageInfo.packageName);
            uploadAppInfo.setId(i);
            String firstInstallTime = Utils.transferLongToDate(packageInfo.firstInstallTime);
            uploadAppInfo.setInstall_time(firstInstallTime);


            if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
                //非系统应用
                appList.add(uploadAppInfo);
            } else {

            }


        }

        Log.e("mjsheng", "UploadAppInfo========" + appList.toString());

        Gson gson = new Gson();
        String jsonString = gson.toJson(appList);
        Log.e("mjsheng", "json========" + jsonString);

        UploadAppInfoApi uploadAppInfoApi = Network.getUploadAppInfoApi();
        uploadAppInfoApi.getUploadAppInfoApi(Configure.HTTP_KEY, Utils.getSerial(), jsonString)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ResponseBody>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            Log.e("mjhseng", "上传的结果"+responseBody.string());
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("mjsheng", "UploadAppInfoApi=onError:");
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    private void initJpush() {
        Set<String> set = new HashSet<>();
        set.add("android");
        JPushInterface.setAliasAndTags(AppStoreActivity.this, Utils.getSerial(), set, new TagAliasCallback() {
            @Override
            public void gotResult(int i, String s, Set<String> set) {
                Log.e("JPushInterface", s + "---" + i + "---" + set.toString());
                if (i == 0) {
                    Log.e("JPushInterface", "JPush绑定成功");
                } else if (i == 6001) {
                    Log.e("JPushInterface", "无效的设置,用户名为空");
                } else if (i == 6002) {
                    Log.e("JPushInterface", "设置超时,请重试");
                    timerImitate();
                } else if (i == 6011) {
                    Log.e("JPushInterface", "短时间内操作过于频繁");
                } else if (i == 996) {
                    Log.e("JPushInterface", "网络连接断开");
                }
            }
        });
    }

    //重新设置jpush
    private void timerImitate() {
        Observable.timer(30000, TimeUnit.MILLISECONDS)
                .observeOn(rx.android.schedulers.AndroidSchedulers.mainThread())
                .subscribe(new Action1<Long>() {
                    @Override
                    public void call(Long aLong) {
                        Log.e("JPushInterface", "JPushInterface重新加载");
                        initJpush();
                    }
                });
    }

    private void update() {
        UpdateBuilder updateBuilder = UpdateBuilder.create();
        // 配置toast通知的回调
        updateBuilder.setDownloadCallback(callback);
        //        updateBuilder.setCheckCallback(callback);
        updateBuilder.setDownloadNotifier(new NotificationDownloadCreator());
        updateBuilder.setUpdateStrategy(new AllDialogShowStrategy());
        updateBuilder.setCheckWorker(OkhttpCheckWorker.class);
        updateBuilder.check();
    }

    @Override
    public void onBackPressed() {

        if (System.currentTimeMillis() - mPreClickTime > 2000) {
            Toast.makeText(this, "再按一次,退出", Toast.LENGTH_SHORT).show();
            mPreClickTime = System.currentTimeMillis();
            return;
        } else {
            finish();
        }
        super.onBackPressed();
    }

    private void getDeselectID() {
        DeselectIDApi deselectIDApi = Network.getDeselectIDApi();
        deselectIDApi.getDeselectIDApi(Configure.HTTP_KEY,Utils.getSerial())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ResponseBody>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            String responString = responseBody.string();
                            Log.e("mjhseng", responString);
                            JSONObject jsonObject = new JSONObject(responString);
                            Integer code = jsonObject.optInt("code");
                            switch (code) {
                                case 200:
                                    JSONObject data = jsonObject.getJSONObject("data");
                                    String ids = data.optString("ids");
                                    writeDeselectIDtoSystem(ids);
                                    break;
                                default:
                                    Log.e("mjhseng", "getDeselectID---code is -200");
                                    break;
                            }
                        } catch (Exception e) {
                            Log.e("mjhseng", "getDeselectID---woring----" + e.getMessage());
                            e.printStackTrace();
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("mjsheng", "DeselectIDApi=onError:");
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    private void getDeselectBrowerID() {
        DeselectBrowserIDApi deselectBrowserIDApi = Network.getDeselectBrowserIDApi();
        deselectBrowserIDApi.getDeselectBrowserIDApi(Configure.HTTP_KEY, Utils.getSerial())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ResponseBody>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.e("mjhseng", "getDeselectBrowerID---onSubscribe");

                    }

                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            String responString = responseBody.string();
                            Log.e("mjhseng", responString);
                            JSONObject jsonObject = new JSONObject(responString);
                            Integer code = jsonObject.optInt("code");
                            switch (code) {
                                case 200:
                                    JSONObject data = jsonObject.getJSONObject("data");
                                    String ids = data.optString("ids");
                                    writeDeselectBrowserIDtoSystem(ids);
                                    break;
                                default:
                                    Log.e("mjhseng", "getDeselectBrowerID---code is -200");
                                    break;
                            }
                        } catch (Exception e) {
                            Log.e("mjhseng", "getDeselectBrowerID---wroing----" + e.getMessage());
                            e.printStackTrace();
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("mjsheng", "getDeselectBrowerID=onError:");
                    }

                    @Override
                    public void onComplete() {
                        Log.e("mjhseng", "getDeselectBrowerID---onComplete");
                    }
                });
    }

    private void writeDeselectBrowserIDtoSystem(String ids) {
        if (!TextUtils.isEmpty(ids)) {
            Settings.System.putString(getContentResolver(), "DeselectViewArray", ids);
        } else {
            Log.e("mjsheng", "writeDeselectBrowserIDtoSystem is null:");

        }
    }

    private void writeDeselectIDtoSystem(String ids) {
        if (!TextUtils.isEmpty(ids)) {
            Settings.System.putString(getContentResolver(), "DeselectBrowserArray", ids);
        } else {
            Log.e("mjsheng", "writeDeselectIDtoSystem is null:");
        }
    }

}

This snippet took 0.04 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).