diff options
Diffstat (limited to 'src/com/android/settings/DBReadAsyncTask.java')
-rw-r--r-- | src/com/android/settings/DBReadAsyncTask.java | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/com/android/settings/DBReadAsyncTask.java b/src/com/android/settings/DBReadAsyncTask.java new file mode 100644 index 0000000000..6cb5429f8e --- /dev/null +++ b/src/com/android/settings/DBReadAsyncTask.java @@ -0,0 +1,108 @@ +/* +Copyright (c) 2016, The Linux Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.settings; + +import android.content.Context; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.net.Uri; +import android.os.AsyncTask; + +public class DBReadAsyncTask extends AsyncTask<Void, Void, Boolean> { + + /** + * SMQ preferences key. + */ + public static final String SMQ_KEY_VALUE = "app_status"; + + /** + * The authority of the provider. + */ + public static final String AUTHORITY = "com.qti.smq.Feedback.provider"; + /** + * The content URI. + */ + final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); + /** + * The Content URI for this table. + */ + final Uri SNAP_CONTENT_URI = Uri.withAppendedPath( + CONTENT_URI, "smq_settings"); + + Context mContext; + + public static final String KEY_VALUE = "app_status"; + + public DBReadAsyncTask(Context mContext) { + super(); + this.mContext = mContext; + } + + @Override + protected Boolean doInBackground(final Void... params) { + final String whereClause = "key" + "=?"; + final String[] selectionArgs = { KEY_VALUE }; + + final Cursor c = mContext.getContentResolver().query( + SNAP_CONTENT_URI, null, whereClause, + selectionArgs, null); + final SharedPreferences sharedPreferences = mContext + .getSharedPreferences(SmqSettings.SMQ_PREFS_NAME, Context.MODE_PRIVATE); + + if (c!= null && c.getCount() > 0) { + c.moveToFirst(); + final int value = c.getInt(1); + + final int appStatus = sharedPreferences.getInt(KEY_VALUE, 0); + if (appStatus == value) { + // Do nothing + } else { + //Save preference and notify. + final SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putInt(KEY_VALUE, value); + editor.commit(); + + } + + } + else{ + //No such table. don't show menu. + final SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putInt(KEY_VALUE, 0); + editor.commit(); + } + if(c != null){ + c.close(); + } + + return true; + } + +}
\ No newline at end of file |