/*
* Copyright 2013 Hari Krishna Dulipudi
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.dworks.apps.asecure;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import dev.dworks.apps.asecure.entity.SecureSIM;
import dev.dworks.apps.asecure.entity.SecureSIM.SecureSIMColumns;
import dev.dworks.libs.actionbarplus.app.ActionBarListFragment;
public class SecureSIMListFragment extends ActionBarListFragment
implements LoaderManager.LoaderCallbacks<Cursor> {
private static final String TAG = "SecureSIMListFragment";
private SimpleCursorAdapter mAdapter;
private SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
private static final String[] PROJECTION = {
SecureSIMColumns._ID,
SecureSIMColumns.NAME,
SecureSIMColumns.SIM_NUMBER,
SecureSIMColumns.MOBILE_NUMBER,
SecureSIMColumns.CREATED_AT
};
private static final int COLUMN_ID = 0;
private static final String[] FROM_COLUMNS = new String[]{
SecureSIMColumns.NAME,
SecureSIMColumns.SIM_NUMBER,
SecureSIMColumns.CREATED_AT
};
private static final int[] TO_FIELDS = new int[]{
R.id.name,
R.id.category,
R.id.date};
public SecureSIMListFragment() {}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_secure_sim_list, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mAdapter = new SimpleCursorAdapter(
getActivity(), // Current context
R.layout.item_secure_sim_list, // Layout for individual rows
null, // Cursor
FROM_COLUMNS, // Cursor columns to use
TO_FIELDS, // Layout fields to use
0 // No flags
);
mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int i) {
if (view.getId() == R.id.date) {
final long created_at = cursor.getLong(i);
final Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(created_at);
String date = sdf.format(calendar.getTime());
((TextView)view).setText(date);
return true;
}
return false;
}
});
setListAdapter(mAdapter);
setEmptyText(getText(R.string.empty_list));
setListShown(false);
if(savedInstanceState == null){
getLoaderManager().initLoader(0, null, this);
}
super.onActivityCreated(savedInstanceState);
}
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return new CursorLoader(getActivity(), // Context
SecureSIM.CONTENT_URI, // URI
PROJECTION, // Projection
null, // Selection
null, // Selection args
SecureSIMColumns.CREATED_AT + " asc"); // Sort
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
setEmptyText(getText(R.string.empty_list));
mAdapter.changeCursor(cursor);
setListShownNoAnimation(true);
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
mAdapter.changeCursor(null);
}
@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
super.onListItemClick(listView, view, position, id);
/* Bundle b = null;
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
ActivityOptionsCompat options = ActivityOptionsCompat .makeThumbnailScaleUpAnimation(view, Utils.drawViewOntoBitmap(view), 0, 0);
b = options.toBundle();
}*/
Cursor cursor = mAdapter.getCursor();
if(null == cursor){
return;
}
int uniqueId = cursor.getInt(COLUMN_ID);
if (uniqueId == 0) {
Log.e(TAG, "Attempt to launch entry with null link");
return;
}
Log.i(TAG, "Opening URL: " + uniqueId);
Intent i = new Intent(getActivity(), SIMAddEditActivity.class);
i.setData(ContentUris.withAppendedId(SecureSIM.CONTENT_URI, uniqueId));
startActivity(i);
//ActivityCompat.startActivity(getActivity(), i, b);
}
}