package net.mms_projects.copy_it.android.tasks; import java.util.Date; import net.mms_projects.copy_it.R; import net.mms_projects.copy_it.api.ServerApi; import net.mms_projects.copy_it.api.endpoints.ClipboardContentEndpoint; import net.mms_projects.copy_it.databases.HistoryItemsDbHelper; import net.mms_projects.copy_it.models.HistoryContract; import net.mms_projects.copy_it.models.HistoryItem.Change; import android.content.ContentValues; import android.content.Context; import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.preference.PreferenceManager; import android.widget.Toast; public class CopyItTask extends ServerApiUiTask<String, Void, Boolean> { protected Change historyChangeType = Change.PUSHED; private String content; private SQLiteDatabase database; public CopyItTask(Context context, ServerApi api) { super(context, api); this.setProgressDialigMessage(context.getResources().getString( R.string.text_content_pushing)); } @Override protected Boolean doInBackgroundWithException(String... params) throws Exception { this.content = params[0]; SharedPreferences prefences = PreferenceManager .getDefaultSharedPreferences(this.context); if (prefences.getBoolean("history.tracking_state", true)) { HistoryItemsDbHelper dbHelper = new HistoryItemsDbHelper(context); this.database = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(HistoryContract.ItemEntry.COLUMN_NAME_CONTENT, this.content); values.put(HistoryContract.ItemEntry.COLUMN_NAME_DATE, new Date().getTime()); values.put(HistoryContract.ItemEntry.COLUMN_NAME_CHANGE, this.historyChangeType.toString()); this.database.insert(HistoryContract.ItemEntry.TABLE_NAME, null, values); this.database.close(); } return new ClipboardContentEndpoint(api).update(this.content); } @Override protected void onPostExecute(Boolean result) { try { this.doExceptionCheck(); if (result) { Toast.makeText( this.context, this.context.getResources().getString( R.string.text_content_pushed, this.content), Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText( this.context, this.context.getResources().getString( R.string.error_general, e.getLocalizedMessage()), Toast.LENGTH_LONG).show(); } super.onPostExecute(result); } }