Wow almost ready

This commit is contained in:
Vladislav Khorev 2015-07-02 08:36:51 +00:00
parent 4e80964196
commit 760ddd06ee
57 changed files with 1409 additions and 308 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -10,8 +10,13 @@
<Button <Button
android:id="@+id/button" android:id="@+id/button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Перейти на сайт..." /> android:layout_margin="8dp"
android:background="@color/bkg2"
android:drawableLeft="@drawable/ic_action_web_site"
android:text="@string/go_to_website"
android:textSize="30sp" />
</LinearLayout> </LinearLayout>

View File

@ -8,6 +8,25 @@
android:orientation="vertical" android:orientation="vertical"
android:showDividers="middle" > android:showDividers="middle" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="@string/address_form"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/addressTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:background="@color/bkg2"
android:textSize="24sp" />
<org.osmdroid.views.MapView <org.osmdroid.views.MapView
android:id="@+id/mapview" android:id="@+id/mapview"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@color/light_grey_1"
android:orientation="vertical"
android:showDividers="middle" >
<Button
android:id="@+id/button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@color/bkg2"
android:drawableLeft="@drawable/ic_action_call"
android:gravity="left|center_vertical"
android:textSize="30sp" />
</LinearLayout>

View File

@ -11,7 +11,7 @@
tools:context="fishrungames.bashgid.MapHolderFragment" > tools:context="fishrungames.bashgid.MapHolderFragment" >
<TextView <TextView
android:id="@+id/textView" android:id="@+id/addressTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
@ -21,6 +21,11 @@
android:textSize="24dp" android:textSize="24dp"
android:textStyle="bold" /> android:textStyle="bold" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<org.osmdroid.views.MapView <org.osmdroid.views.MapView
android:id="@+id/mapview" android:id="@+id/mapview"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -13,7 +13,7 @@
<ImageView <ImageView
android:id="@+id/logo_view" android:id="@+id/logo_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="350dp" android:layout_height="250dp"
android:layout_marginTop="22dp" android:layout_marginTop="22dp"
android:contentDescription="@string/RB_Coat" android:contentDescription="@string/RB_Coat"
android:scaleType="fitCenter" android:scaleType="fitCenter"
@ -22,7 +22,9 @@
<LinearLayout <LinearLayout
android:id="@+id/flag_view" android:id="@+id/flag_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" > android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom" >
<ImageButton <ImageButton
android:id="@+id/image_flag_usa" android:id="@+id/image_flag_usa"

View File

@ -16,23 +16,33 @@
<TextView <TextView
android:id="@+id/dateTextView" android:id="@+id/dateTextView"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:paddingLeft="16dp" android:paddingLeft="16dp"
android:textSize="16sp" android:textSize="32sp"
android:textStyle="bold" /> android:textStyle="bold" />
<Button <Button
android:id="@+id/button" android:id="@+id/button"
android:layout_width="152dp" style="?android:attr/borderlessButtonStyle"
android:layout_height="24dp" android:layout_width="wrap_content"
android:layout_margin="8dp" android:layout_height="wrap_content"
android:background="@drawable/see_more_button" android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/transparent"
android:gravity="right|center_vertical" android:gravity="right|center_vertical"
android:paddingRight="28dp" android:textSize="20sp" />
android:textSize="16sp" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/transparent"
android:src="@drawable/see_more_small" />
</LinearLayout> </LinearLayout>
@ -40,7 +50,9 @@
android:id="@+id/descriptionTextView" android:id="@+id/descriptionTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="TextView" /> android:layout_margin="14dp"
android:text=""
android:textSize="18sp" />
<it.sephiroth.android.library.widget.HListView <it.sephiroth.android.library.widget.HListView
android:id="@+id/hListView" android:id="@+id/hListView"

View File

@ -121,9 +121,11 @@
<Button <Button
android:id="@+id/moreNewsButton" android:id="@+id/moreNewsButton"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:background="@drawable/transparent"
android:text="@string/other_news" /> android:text="@string/other_news" />
</LinearLayout> </LinearLayout>

View File

@ -26,7 +26,7 @@
android:textSize="20sp" /> android:textSize="20sp" />
<EditText <EditText
android:id="@+id/editText" android:id="@+id/searchEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ems="10" android:ems="10"
@ -37,9 +37,11 @@
<Button <Button
android:id="@+id/searchButton" android:id="@+id/searchButton"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:drawableLeft="@drawable/ic_action_search"
android:text="@string/search_title" /> android:text="@string/search_title" />
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@color/light_grey_1"
android:orientation="vertical"
android:showDividers="middle" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp" />
<TextView
android:id="@+id/addressTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@color/bkg2"
android:text="TextView"
android:textSize="18sp" />
<Button
android:id="@+id/button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@color/bkg2"
android:drawableLeft="@drawable/ic_action_call"
android:gravity="left|center_vertical"
android:text="Button"
android:textSize="30sp" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@ -9,7 +9,7 @@
tools:context="fishrungames.bashgid.SearchFragment" > tools:context="fishrungames.bashgid.SearchFragment" >
<TextView <TextView
android:id="@+id/textView" android:id="@+id/addressTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
@ -28,4 +28,9 @@
<requestFocus /> <requestFocus />
</EditText> </EditText>
<TextView
android:id="@+id/hintTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>

View File

@ -24,7 +24,7 @@
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:padding="2dp" android:padding="2dp"
android:text="TextView" android:text="TextView"
android:textSize="16sp" android:textSize="24sp"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
@ -32,6 +32,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:text="TextView" /> android:text="TextView"
android:textSize="18sp" />
</LinearLayout> </LinearLayout>

View File

@ -4,7 +4,7 @@
<item android:id="@+id/action_search" <item android:id="@+id/action_search"
android:title="@string/search_title" android:title="@string/search_title"
android:icon="@drawable/abc_ic_search_api_mtrl_alpha" android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
app:showAsAction="always" android:showAsAction="always|withText"
android:actionViewClass="android.widget.SearchView" /> android:actionViewClass="android.widget.SearchView" />
</menu> </menu>

View File

@ -63,5 +63,16 @@
<string name="dialog_open">Открыть</string> <string name="dialog_open">Открыть</string>
<string name="dialog_cancel">Отмена</string> <string name="dialog_cancel">Отмена</string>
<string name="search_everywhere">Искать везде</string>
<string name="search_in">Искать в: %%</string>
<string name="address_form">Адрес:</string>
<string name="copied_text">Скопированный текст</string>
<string name="text_is_copied">Адрес скопирован в буфер обмена.</string>
<string name="search_result_count">Найдено результатов поиска: %%</string>
<string name="search_is_performing">Идет поиск, пожалуйста, подождите...</string>
<string name="search_at_least_3_symbols">Чтобы начать поиск, введите как минимум 3 символа</string>
</resources> </resources>

View File

@ -20,7 +20,7 @@
<string name="news_header">头条新闻</string> <string name="news_header">头条新闻</string>
<string name="news_load_more">Load more</string> <string name="news_load_more">加载更多</string>
<string name="news_content_description">新闻内容描述</string> <string name="news_content_description">新闻内容描述</string>
@ -47,13 +47,25 @@
<string name="price">Price: </string> <string name="price">Price: </string>
<string name="rub">RUB</string> <string name="rub">RUB</string>
<string name="journal_open_map">Show on map</string>
<string name="map_is_loading">Map is loading...</string>
<string name="map_is_loaded">Map is loaded</string>
<string name="news_are_loading">News are loading...</string>
<string name="dialog_open">Open</string> <string name="journal_open_map">在地图上显示</string>
<string name="dialog_cancel">Cancel</string> <string name="map_is_loading">地图正在加载...</string>
<string name="map_is_loaded">地图加载完毕</string>
<string name="news_are_loading">新闻正在加载</string>
<string name="dialog_open">打开</string>
<string name="dialog_cancel">取消</string>
<string name="search_everywhere">全面搜索</string>
<string name="search_in">在%%搜索: </string>
<string name="address_form">地址:</string>
<string name="copied_text">复制文本</string>
<string name="text_is_copied">地址已被复制到剪贴板</string>
<string name="search_result_count">搜索结果: %% 文章被找到</string>
<string name="search_is_performing">正在搜索,请稍等…</string>
<string name="search_at_least_3_symbols">输入关键字符,开始搜索</string>
</resources> </resources>

View File

@ -64,5 +64,17 @@
<string name="dialog_open">Open</string> <string name="dialog_open">Open</string>
<string name="dialog_cancel">Cancel</string> <string name="dialog_cancel">Cancel</string>
<string name="search_everywhere">Search everywhere</string>
<string name="search_in">Search in: %%</string>
<string name="address_form">Address:</string>
<string name="copied_text">Copied text</string>
<string name="text_is_copied">Address is copied to clipboard.</string>
<string name="search_result_count">Search result: %% articles found</string>
<string name="search_is_performing">Search is performing, please wait...</string>
<string name="search_at_least_3_symbols">To start search, enter at least 3 symbols</string>
</resources> </resources>

View File

@ -110,7 +110,7 @@ public class AlbumListFragment extends Fragment
protected Long doInBackground(String... queryArr) protected Long doInBackground(String... queryArr)
{ {
albumArr = MainActivity.getInstance().albumDataSource.GetAllAlbumShortData(); albumArr = MainActivity.getInstance().albumDataSource.GetAllAlbumShortDataExceptHidden();
return (long) 0; return (long) 0;
} }

View File

@ -38,15 +38,18 @@ import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
@ -55,7 +58,7 @@ public class ArticleFragment extends Fragment
public static class ArticleLayoutElement public static class ArticleLayoutElement
{ {
public int type; //0 title; 1 text; 2 photo; 3 geotag; 4 photo_album; 5 button public int type; //0 title; 1 text; 2 photo; 3 geotag; 4 photo_album; 5 button 6 phone
public String value; public String value;
@ -194,6 +197,12 @@ public class ArticleFragment extends Fragment
articleLayout.add(new ArticleLayoutElement(1, article.content)); articleLayout.add(new ArticleLayoutElement(1, article.content));
if (article.phone.length() > 0)
{
articleLayout.add(new ArticleLayoutElement(6, article.phone));
}
if (article.geoLat != 0 && article.geoLon != 0) if (article.geoLat != 0 && article.geoLon != 0)
{ {
articleLayout.add(new ArticleLayoutElement(article.geoLat, article.geoLon)); articleLayout.add(new ArticleLayoutElement(article.geoLat, article.geoLon));
@ -271,7 +280,7 @@ public class ArticleFragment extends Fragment
@Override @Override
public int getViewTypeCount() public int getViewTypeCount()
{ {
return 6; return 7;
} }
@Override @Override
@ -309,11 +318,16 @@ public class ArticleFragment extends Fragment
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.article_album_element, null); view = inflater.inflate(R.layout.article_album_element, null);
} }
else //if (getItemViewType(position) == 5) else if (getItemViewType(position) == 5)
{ {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.article_button_element, null); view = inflater.inflate(R.layout.article_button_element, null);
} }
else //if (getItemViewType(position) == 6)
{
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.article_phone_element, null);
}
} else { } else {
view = convertView; view = convertView;
} }
@ -325,7 +339,7 @@ public class ArticleFragment extends Fragment
textView.setText(articleLayout.get(position).value); textView.setText(articleLayout.get(position).value);
textView.setTextSize(24); textView.setTextSize(64);
textView.setTypeface(null, Typeface.BOLD); textView.setTypeface(null, Typeface.BOLD);
textView.setGravity(Gravity.CENTER_HORIZONTAL); textView.setGravity(Gravity.CENTER_HORIZONTAL);
@ -336,7 +350,7 @@ public class ArticleFragment extends Fragment
textView.setText(articleLayout.get(position).value); textView.setText(articleLayout.get(position).value);
textView.setTextSize(12); textView.setTextSize(24);
textView.setTypeface(null, Typeface.NORMAL); textView.setTypeface(null, Typeface.NORMAL);
textView.setGravity(Gravity.LEFT); textView.setGravity(Gravity.LEFT);
@ -357,8 +371,50 @@ public class ArticleFragment extends Fragment
double geoLat = articleLayout.get(position).geoLat; double geoLat = articleLayout.get(position).geoLat;
double geoLon = articleLayout.get(position).geoLon; double geoLon = articleLayout.get(position).geoLon;
TextView addressTextView = (TextView) view.findViewById(R.id.addressTextView);
if (article.address.length() > 0)
{
addressTextView.setText(article.address);
addressTextView.setVisibility(View.VISIBLE);
final String copied_text = getResources().getString(R.string.copied_text);
addressTextView.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View v)
{
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) MainActivity.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(article.address);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) MainActivity.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText(copied_text, article.address);
clipboard.setPrimaryClip(clip);
}
CharSequence text = getResources().getString(R.string.text_is_copied);
Toast toast = Toast.makeText(MainActivity.getInstance(), text, Toast.LENGTH_SHORT);
toast.show();
return true;
}
});
//editText.setKeyListener(null);
}
else
{
addressTextView.setVisibility(View.GONE);
}
MapView mapView = (MapView) view.findViewById(R.id.mapview); MapView mapView = (MapView) view.findViewById(R.id.mapview);
mapView.setMaxZoomLevel(20); mapView.setMaxZoomLevel(20);
mapView.setMinZoomLevel(4); mapView.setMinZoomLevel(4);
@ -423,6 +479,15 @@ public class ArticleFragment extends Fragment
{ {
Button button = (Button) view.findViewById(R.id.button); Button button = (Button) view.findViewById(R.id.button);
if (article.externalLinkText.length() > 0)
{
button.setText(article.externalLinkText);
}
else
{
button.setText(R.string.go_to_website);
}
button.setOnClickListener(new OnClickListener() button.setOnClickListener(new OnClickListener()
{ {
@Override @Override
@ -434,6 +499,27 @@ public class ArticleFragment extends Fragment
} }
}); });
} }
else if (getItemViewType(position) == 6)
{
Button button = (Button) view.findViewById(R.id.button);
final String phone = article.phone;
button.setText(phone);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String uri = "tel:" + phone;
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(uri));
MainActivity.getInstance().startActivity(intent);
}
});
}

View File

@ -3,9 +3,6 @@ package fishrungames.bashgid;
import java.util.ArrayList; import java.util.ArrayList;
import it.sephiroth.android.library.widget.HListView; import it.sephiroth.android.library.widget.HListView;
import fishrungames.bashgid.AlbumListFragment.DatabaseGetAlbumListTask;
import fishrungames.bashgid.MainPageFragment.ListAdapter;
import fishrungames.bashgid.core.AlbumManager.AlbumShortData;
import fishrungames.bashgid.core.DatabaseGetJournalListTask; import fishrungames.bashgid.core.DatabaseGetJournalListTask;
import fishrungames.bashgid.core.JournalManager.JournalSemiFullData; import fishrungames.bashgid.core.JournalManager.JournalSemiFullData;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
@ -21,6 +18,7 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
@ -142,6 +140,7 @@ public class CatalogFragment extends Fragment
TextView descriptionTextView = (TextView) view.findViewById(R.id.descriptionTextView); TextView descriptionTextView = (TextView) view.findViewById(R.id.descriptionTextView);
Button button = (Button) view.findViewById(R.id.button); Button button = (Button) view.findViewById(R.id.button);
ImageButton imageButton = (ImageButton) view.findViewById(R.id.imageButton);
HListView hListView = (HListView) view.findViewById(R.id.hListView); HListView hListView = (HListView) view.findViewById(R.id.hListView);
@ -164,6 +163,15 @@ public class CatalogFragment extends Fragment
}); });
imageButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
MainActivity.getInstance().OpenJournalScreen(journalList.get(position).name, MainActivity.TAG_FROM_CATALOGFRAGMENT_TO_JOURNALFRAGMENT);
}
});
return view; return view;
} }

View File

@ -20,6 +20,7 @@ import fishrungames.bashgid.core.ArticleManager.ArticleShortData;
import fishrungames.bashgid.core.ChannelManager.ChannelFullData; import fishrungames.bashgid.core.ChannelManager.ChannelFullData;
import fishrungames.bashgid.core.DatabaseDownloadTask; import fishrungames.bashgid.core.DatabaseDownloadTask;
import fishrungames.bashgid.core.HtmlDownloadManager.TextFileRecord; import fishrungames.bashgid.core.HtmlDownloadManager.TextFileRecord;
import fishrungames.bashgid.core.JournalManager.JournalRecordData;
import fishrungames.bashgid.core.JournalManager.JournalSemiFullData; import fishrungames.bashgid.core.JournalManager.JournalSemiFullData;
import fishrungames.bashgid.core.NewsDownloadTask; import fishrungames.bashgid.core.NewsDownloadTask;
import fishrungames.bashgid.core.TranslationManager.TranslationRecordData; import fishrungames.bashgid.core.TranslationManager.TranslationRecordData;
@ -43,6 +44,7 @@ import fishrungames.networkutils.ImageManager;
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
@ -54,6 +56,7 @@ import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
@ -114,6 +117,10 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
public static final int DATABASE_SEARCH_ARTICLE_STATE_UPDATE = 28; public static final int DATABASE_SEARCH_ARTICLE_STATE_UPDATE = 28;
public static final int DATABASE_SEARCH_ARTICLE_STATE_FINISHED = 29; public static final int DATABASE_SEARCH_ARTICLE_STATE_FINISHED = 29;
public static final int DATABASE_GET_GEO_JOURNAL_LIST_STATE_UPDATE = 30;
public static final int DATABASE_GET_GEO_JOURNAL_LIST_STATE_FINISHED = 31;
@ -253,7 +260,10 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
UpdateOnArticleSearchPerformed((ArrayList<ArticleShortData>) inputMessage.obj); UpdateOnArticleSearchPerformed((ArrayList<ArticleShortData>) inputMessage.obj);
break; break;
case DATABASE_GET_GEO_JOURNAL_LIST_STATE_UPDATE:
case DATABASE_GET_GEO_JOURNAL_LIST_STATE_FINISHED:
UpdateOnGeoJournalListLoaded((ArrayList<JournalRecordData>) inputMessage.obj);
break;
default: default:
super.handleMessage(inputMessage); super.handleMessage(inputMessage);
@ -421,6 +431,9 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
searchFragment = null; searchFragment = null;
catalogFragment = null; catalogFragment = null;
InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
} }
public void StartDownloadImagesTask(ArrayList<String> imageUrlArr, ArrayList<String> imageHashArr) public void StartDownloadImagesTask(ArrayList<String> imageUrlArr, ArrayList<String> imageHashArr)
@ -578,6 +591,17 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
} }
public void UpdateOnGeoJournalListLoaded(ArrayList<JournalRecordData> journalList)
{
if (mapHolderFragment != null)
{
mapHolderFragment.SetGeoJournals(journalList);
}
}
public void UpdateOnArticleSearchPerformed(ArrayList<ArticleShortData> articleArr) public void UpdateOnArticleSearchPerformed(ArrayList<ArticleShortData> articleArr)
{ {
@ -736,6 +760,17 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
mNavigationDrawerFragment.EnableDrawer(); mNavigationDrawerFragment.EnableDrawer();
} }
public void OpenSearchScreen(String query)
{
ClearAllFragmentLinks();
searchFragment = new SearchFragment(query);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, searchFragment, TAG_TO_MAINFRAGMENT).commit();
mNavigationDrawerFragment.EnableDrawer();
}
public void OpenSearchScreen(String journalName, String journalTitle) public void OpenSearchScreen(String journalName, String journalTitle)
{ {
ClearAllFragmentLinks(); ClearAllFragmentLinks();
@ -1038,7 +1073,8 @@ public class MainActivity extends ActionBarActivity implements NavigationDrawerF
} }
else if (position == 7) else if (position == 7)
{ {
OpenBooksScreen(); //OpenBooksScreen();
OpenJournalScreen("books", MainActivity.TAG_TO_MAINFRAGMENT);
} }
else if (position == 8) else if (position == 8)
{ {

View File

@ -22,6 +22,7 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@ -37,6 +38,7 @@ public class MainPageFragment extends Fragment {
ListAdapter listAdapter; ListAdapter listAdapter;
View header; View header;
ProgressBar progressBar; ProgressBar progressBar;
EditText searchEditText;
JournalSemiFullData newsJournal; JournalSemiFullData newsJournal;
@ -87,6 +89,8 @@ public class MainPageFragment extends Fragment {
} }
); );
searchEditText = (EditText) header.findViewById(R.id.searchEditText);
Button searchButton = (Button) header.findViewById(R.id.searchButton); Button searchButton = (Button) header.findViewById(R.id.searchButton);
searchButton.setOnClickListener(new OnClickListener() searchButton.setOnClickListener(new OnClickListener()
@ -95,7 +99,8 @@ public class MainPageFragment extends Fragment {
@Override @Override
public void onClick(View v) public void onClick(View v)
{ {
MainActivity.getInstance().OpenSearchScreen(); String query = searchEditText.getText().toString();
MainActivity.getInstance().OpenSearchScreen(query);
} }
} }
); );
@ -294,6 +299,9 @@ public class MainPageFragment extends Fragment {
Button button = (Button) view.findViewById(R.id.button); Button button = (Button) view.findViewById(R.id.button);
ImageButton imageButton = (ImageButton) view.findViewById(R.id.imageButton);
HListView hListView = (HListView) view.findViewById(R.id.hListView); HListView hListView = (HListView) view.findViewById(R.id.hListView);
hListView.setAdapter(new MainPageHListViewAdapters.JournalElementAdapter(getActivity(), journalList.get(position))); hListView.setAdapter(new MainPageHListViewAdapters.JournalElementAdapter(getActivity(), journalList.get(position)));
@ -317,6 +325,21 @@ public class MainPageFragment extends Fragment {
MainActivity.getInstance().OpenJournalScreen(journalList.get(position).name, MainActivity.TAG_TO_MAINFRAGMENT); MainActivity.getInstance().OpenJournalScreen(journalList.get(position).name, MainActivity.TAG_TO_MAINFRAGMENT);
} }
}); });
imageButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if (databaseGetJournalTask != null)
{
databaseGetJournalTask.cancel(false);
}
MainActivity.getInstance().OpenJournalScreen(journalList.get(position).name, MainActivity.TAG_TO_MAINFRAGMENT);
}
});
return view; return view;
} }
@ -336,7 +359,11 @@ public class MainPageFragment extends Fragment {
@Override @Override
public void onClick(View v) public void onClick(View v)
{ {
databaseGetJournalTask.cancel(false); if (databaseGetJournalTask != null)
{
databaseGetJournalTask.cancel(false);
databaseGetJournalTask = null;
}
MainActivity.getInstance().OpenNewsRecordScreen(articleName, MainActivity.TAG_FROM_MAINFRAGMENT_TO_NEWSRECORDFRAGMENT); MainActivity.getInstance().OpenNewsRecordScreen(articleName, MainActivity.TAG_FROM_MAINFRAGMENT_TO_NEWSRECORDFRAGMENT);
} }

View File

@ -1,25 +1,34 @@
package fishrungames.bashgid; package fishrungames.bashgid;
import java.util.ArrayList; import java.util.ArrayList;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Point; import android.graphics.Point;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import org.osmdroid.DefaultResourceProxyImpl; import org.osmdroid.DefaultResourceProxyImpl;
import org.osmdroid.ResourceProxy; import org.osmdroid.ResourceProxy;
import org.osmdroid.api.IGeoPoint;
import org.osmdroid.api.IMapController; import org.osmdroid.api.IMapController;
import org.osmdroid.api.IMapView; import org.osmdroid.api.IMapView;
import org.osmdroid.util.GeoPoint; import org.osmdroid.util.GeoPoint;
@ -33,7 +42,9 @@ import org.osmdroid.views.overlay.OverlayItem.HotspotPlace;
import fishrungames.bashgid.core.ArticleManager.ArticleFullData; import fishrungames.bashgid.core.ArticleManager.ArticleFullData;
import fishrungames.bashgid.core.ArticleManager.ArticleRecordData; import fishrungames.bashgid.core.ArticleManager.ArticleRecordData;
import fishrungames.bashgid.core.DatabaseGetArticleTask; import fishrungames.bashgid.core.DatabaseGetArticleTask;
import fishrungames.bashgid.core.DatabaseGetGeoJournalListTask;
import fishrungames.bashgid.core.DatabaseGetJournalTask; import fishrungames.bashgid.core.DatabaseGetJournalTask;
import fishrungames.bashgid.core.JournalManager.JournalRecordData;
import fishrungames.bashgid.core.LocationHolder; import fishrungames.bashgid.core.LocationHolder;
import fishrungames.bashgid.core.JournalManager.JournalSemiFullData; import fishrungames.bashgid.core.JournalManager.JournalSemiFullData;
import fishrungames.networkutils.ImageManager; import fishrungames.networkutils.ImageManager;
@ -41,31 +52,55 @@ import fishrungames.networkutils.ImageManager;
public class OsmMapHolderFragment extends Fragment public class OsmMapHolderFragment extends Fragment
{ {
public static class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem>{ public static class DetailsOverlayItem extends OverlayItem
{
private ArrayList<OverlayItem> mOverlayItems = new ArrayList<OverlayItem>(); public String address;
public String phone;
public DetailsOverlayItem(String aTitle, String aSnippet, IGeoPoint aGeoPoint, String address, String phone)
{
super(aTitle, aSnippet, aGeoPoint);
this.address = address;
this.phone = phone;
}
}
public static class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private ArrayList<DetailsOverlayItem> mOverlayItems = new ArrayList<DetailsOverlayItem>();
private ArrayList<String> mArticles = new ArrayList<String>(); private ArrayList<String> mArticles = new ArrayList<String>();
String journalName; String journalName;
Context context;
public CustomItemizedOverlay(Drawable pDefaultMarker, ResourceProxy pResourceProxy, String journalName) { public CustomItemizedOverlay(Drawable pDefaultMarker, ResourceProxy pResourceProxy, String journalName, Context context)
{
super(pDefaultMarker, pResourceProxy); super(pDefaultMarker, pResourceProxy);
this.journalName = journalName; this.journalName = journalName;
this.context = context;
} }
@Override @Override
protected OverlayItem createItem(int pos) { protected OverlayItem createItem(int pos)
{
return mOverlayItems.get(pos); return mOverlayItems.get(pos);
} }
@Override @Override
public int size() { public int size()
if(mOverlayItems!=null) return mOverlayItems.size(); {
else return 0; if (mOverlayItems != null)
return mOverlayItems.size();
else
return 0;
} }
public void addOverlayItem(GeoPoint geoPoint, String articleName, String title, String imageUrl){ public void addOverlayItem(GeoPoint geoPoint, String articleName, String title, String imageUrl, String address, String phone)
{
OverlayItem item = new OverlayItem(title, imageUrl, geoPoint); DetailsOverlayItem item = new DetailsOverlayItem(title, imageUrl, geoPoint, address, phone);
item.setMarker(MainActivity.getInstance().getResources().getDrawable(R.drawable.marker_default)); item.setMarker(MainActivity.getInstance().getResources().getDrawable(R.drawable.marker_default));
item.setMarkerHotspot(HotspotPlace.CENTER); item.setMarkerHotspot(HotspotPlace.CENTER);
@ -75,7 +110,8 @@ public class OsmMapHolderFragment extends Fragment
populateNow(); populateNow();
} }
public void populateNow(){ public void populateNow()
{
populate(); populate();
} }
@ -87,64 +123,141 @@ public class OsmMapHolderFragment extends Fragment
} }
@Override @Override
protected boolean onTap(final int index) { protected boolean onTap(final int index)
OverlayItem item = mOverlayItems.get(index); {
DetailsOverlayItem item = mOverlayItems.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.getInstance()); AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.getInstance());
dialog.setTitle(item.getTitle()); dialog.setTitle(item.getTitle());
//dialog.setMessage(item.getSnippet()); // dialog.setMessage(item.getSnippet());
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogInnerView = inflater.inflate(R.layout.osm_dialog, null, false);
ImageView image = (ImageView) dialogInnerView.findViewById(R.id.imageView);
TextView textView = (TextView) dialogInnerView.findViewById(R.id.addressTextView);
Button button = (Button) dialogInnerView.findViewById(R.id.button);
ImageView image = new ImageView(MainActivity.getInstance());
ImageManager.getInstance().ApplyImageToImageView(image, item.getSnippet()); ImageManager.getInstance().ApplyImageToImageView(image, item.getSnippet());
//image.setImageResource(R.drawable.YOUR_IMAGE_ID);
dialog.setView(image); if (item.address.length() > 0)
{
final String address = item.address;
textView.setText(address);
textView.setVisibility(View.VISIBLE);
final String copied_text = MainActivity.getInstance().getResources().getString(R.string.copied_text);
textView.setOnLongClickListener(new OnLongClickListener()
{
dialog.setPositiveButton(R.string.dialog_open, new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int id) { public boolean onLongClick(View v)
{
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB)
{
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) MainActivity.getInstance().getSystemService(
Context.CLIPBOARD_SERVICE);
clipboard.setText(address);
} else
{
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) MainActivity.getInstance().getSystemService(
Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText(copied_text, address);
clipboard.setPrimaryClip(clip);
}
CharSequence text = MainActivity.getInstance().getResources().getString(R.string.text_is_copied);
Toast toast = Toast.makeText(MainActivity.getInstance(), text, Toast.LENGTH_SHORT);
toast.show();
return true;
}
});
} else
{
textView.setVisibility(View.GONE);
}
if (item.phone.length() > 0)
{
final String phone = item.phone;
button.setText(phone);
button.setVisibility(View.VISIBLE);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String uri = "tel:" + phone;
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(uri));
MainActivity.getInstance().startActivity(intent);
}
});
} else
{
button.setVisibility(View.GONE);
}
dialog.setView(dialogInnerView);
dialog.setPositiveButton(R.string.dialog_open, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
MainActivity.getInstance().SetLastMapFilterName(journalName); MainActivity.getInstance().SetLastMapFilterName(journalName);
MainActivity.getInstance().OpenArticleScreen(mArticles.get(index), MainActivity.TAG_FROM_MAPFRAGMENT_TO_ARTICLEFRAGMENT); MainActivity.getInstance().OpenArticleScreen(mArticles.get(index), MainActivity.TAG_FROM_MAPFRAGMENT_TO_ARTICLEFRAGMENT);
} }
}); });
dialog.setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() { dialog.setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int id) { {
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel(); dialog.cancel();
} }
}); });
dialog.show(); dialog.show();
return true; return true;
} }
} }
public static class NoInteractionOverlay extends ItemizedOverlay<OverlayItem>
public static class NoInteractionOverlay extends ItemizedOverlay<OverlayItem>{ {
private ArrayList<OverlayItem> mOverlayItems = new ArrayList<OverlayItem>(); private ArrayList<OverlayItem> mOverlayItems = new ArrayList<OverlayItem>();
public NoInteractionOverlay(Drawable pDefaultMarker, ResourceProxy pResourceProxy) { public NoInteractionOverlay(Drawable pDefaultMarker, ResourceProxy pResourceProxy)
{
super(pDefaultMarker, pResourceProxy); super(pDefaultMarker, pResourceProxy);
} }
@Override @Override
protected OverlayItem createItem(int pos) { protected OverlayItem createItem(int pos)
{
return mOverlayItems.get(pos); return mOverlayItems.get(pos);
} }
@Override @Override
public int size() { public int size()
if(mOverlayItems!=null) return mOverlayItems.size(); {
else return 0; if (mOverlayItems != null)
return mOverlayItems.size();
else
return 0;
} }
public void addOverlayItem(GeoPoint geoPoint){ public void addOverlayItem(GeoPoint geoPoint)
{
OverlayItem item = new OverlayItem("", "", geoPoint); OverlayItem item = new OverlayItem("", "", geoPoint);
item.setMarker(MainActivity.getInstance().getResources().getDrawable(R.drawable.marker_default)); item.setMarker(MainActivity.getInstance().getResources().getDrawable(R.drawable.marker_default));
@ -155,7 +268,8 @@ public class OsmMapHolderFragment extends Fragment
populateNow(); populateNow();
} }
public void populateNow(){ public void populateNow()
{
populate(); populate();
} }
@ -171,11 +285,17 @@ public class OsmMapHolderFragment extends Fragment
String filter; String filter;
ArrayList<JournalRecordData> availableGeoJournals;
ArrayList<String> availableGeoJournalNames;
ArrayAdapter<String> spinnerAdapter;
JournalSemiFullData journal; JournalSemiFullData journal;
ArticleFullData article; ArticleFullData article;
int filterType; int filterType;
Spinner spinner;
public OsmMapHolderFragment() public OsmMapHolderFragment()
{ {
@ -183,8 +303,10 @@ public class OsmMapHolderFragment extends Fragment
article = null; article = null;
filter = ""; filter = "";
filterType = 0; filterType = 0;
} availableGeoJournals = new ArrayList<JournalRecordData>();
availableGeoJournalNames = new ArrayList<String>();
}
public OsmMapHolderFragment(int filterType, String filter) public OsmMapHolderFragment(int filterType, String filter)
{ {
@ -193,7 +315,8 @@ public class OsmMapHolderFragment extends Fragment
this.filter = filter; this.filter = filter;
this.filterType = filterType; this.filterType = filterType;
RestoreJournalOrArticle(); availableGeoJournals = new ArrayList<JournalRecordData>();
availableGeoJournalNames = new ArrayList<String>();
} }
@ -205,41 +328,37 @@ public class OsmMapHolderFragment extends Fragment
this.article = article; this.article = article;
this.journal = null; this.journal = null;
availableGeoJournals = new ArrayList<JournalRecordData>();
availableGeoJournalNames = new ArrayList<String>();
} }
@Override @Override
public void onSaveInstanceState(final Bundle outState) { public void onSaveInstanceState(final Bundle outState)
{
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
outState.putString("filter", filter); outState.putString("filter", filter);
outState.putInt("filterType", filterType); outState.putInt("filterType", filterType);
} }
MapView mapView; MapView mapView;
TextView textView; TextView textView;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (savedInstanceState != null) { if (savedInstanceState != null)
{
filter = savedInstanceState.getString("filter"); filter = savedInstanceState.getString("filter");
filterType = savedInstanceState.getInt("filterType"); filterType = savedInstanceState.getInt("filterType");
RestoreJournalOrArticle();
} }
View rootView = inflater.inflate(R.layout.fragment_osm_map_page, container, false); View rootView = inflater.inflate(R.layout.fragment_osm_map_page, container, false);
textView = (TextView) rootView.findViewById(R.id.textView); textView = (TextView) rootView.findViewById(R.id.addressTextView);
if ((filterType == 0 && journal == null) || (filterType == 1 && article == null))
{
textView.setText(R.string.map_is_loading);
}
else
{
textView.setText(R.string.map_is_loaded);
}
mapView = (MapView) rootView.findViewById(R.id.mapview); mapView = (MapView) rootView.findViewById(R.id.mapview);
@ -249,7 +368,6 @@ public class OsmMapHolderFragment extends Fragment
mapView.setBuiltInZoomControls(true); mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true); mapView.setMultiTouchControls(true);
IMapController mapController = mapView.getController(); IMapController mapController = mapView.getController();
GeoPoint center = new GeoPoint(LocationHolder.CONST_UFA_LATITUDE, LocationHolder.CONST_UFA_LONGITUDE); GeoPoint center = new GeoPoint(LocationHolder.CONST_UFA_LATITUDE, LocationHolder.CONST_UFA_LONGITUDE);
@ -257,29 +375,75 @@ public class OsmMapHolderFragment extends Fragment
mapController.setZoom(10); mapController.setZoom(10);
mapController.animateTo(center); mapController.animateTo(center);
RefreshView(); RefreshView();
spinnerAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, availableGeoJournalNames);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner = (Spinner) rootView.findViewById(R.id.spinner);
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
if (position < availableGeoJournals.size())
{
if (!(filterType == 0 && filter.equals(availableGeoJournals.get(position).name)))
{
filterType = 0;
filter = availableGeoJournals.get(position).name;
textView.setText(R.string.map_is_loading);
RestoreJournalOrArticle();
}
}
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
});
if ((filterType == 0 && journal == null) || (filterType == 1 && article == null))
{
textView.setText(R.string.map_is_loading);
RestoreJournalOrArticle();
} else
{
textView.setText(R.string.map_is_loaded);
RestoreGeoJournals();
}
return rootView; return rootView;
} }
void RestoreJournalOrArticle() void RestoreJournalOrArticle()
{ {
if (filterType == 0) if (filterType == 0)
{ {
RestoreJournal(); RestoreJournal();
} } else
else
{ {
RestoreArticle(); RestoreArticle();
} }
} }
void RestoreJournal() void RestoreJournal()
{ {
//journal = JournalManager.CreateEmptyJournal(); // journal = JournalManager.CreateEmptyJournal();
DatabaseGetJournalTask task = new DatabaseGetJournalTask(); DatabaseGetJournalTask task = new DatabaseGetJournalTask();
@ -291,6 +455,10 @@ public class OsmMapHolderFragment extends Fragment
task.execute(bundle); task.execute(bundle);
availableGeoJournals.clear();
availableGeoJournalNames.clear();
spinnerAdapter.notifyDataSetChanged();
} }
void RestoreArticle() void RestoreArticle()
@ -302,6 +470,21 @@ public class OsmMapHolderFragment extends Fragment
task.execute(filter); task.execute(filter);
availableGeoJournals.clear();
availableGeoJournalNames.clear();
spinnerAdapter.notifyDataSetChanged();
}
void RestoreGeoJournals()
{
DatabaseGetGeoJournalListTask task = new DatabaseGetGeoJournalListTask();
task.mHandler = MainActivity.getInstance().mHandler;
task.execute();
} }
public void SetJournal(JournalSemiFullData journal) public void SetJournal(JournalSemiFullData journal)
@ -314,6 +497,8 @@ public class OsmMapHolderFragment extends Fragment
RefreshView(); RefreshView();
RestoreGeoJournals();
} }
public void SetArticle(ArticleFullData article) public void SetArticle(ArticleFullData article)
@ -326,40 +511,75 @@ public class OsmMapHolderFragment extends Fragment
RefreshView(); RefreshView();
RestoreGeoJournals();
}
public void SetGeoJournals(ArrayList<JournalRecordData> availableGeoJournals)
{
this.availableGeoJournals = availableGeoJournals;
availableGeoJournalNames.clear();
int selection = -1;
for (JournalRecordData journal : availableGeoJournals)
{
if (filterType == 0 && filter.equals(journal.name))
{
selection = availableGeoJournalNames.size();
}
availableGeoJournalNames.add(journal.title);
}
if (filterType == 1)
{
selection = availableGeoJournalNames.size();
availableGeoJournalNames.add(article.title);
}
spinnerAdapter.notifyDataSetChanged();
if (selection != -1)
{
spinner.setSelection(selection);
}
} }
public void RefreshView() public void RefreshView()
{ {
ResourceProxy resourceProxy = new DefaultResourceProxyImpl(getActivity()); ResourceProxy resourceProxy = new DefaultResourceProxyImpl(getActivity());
itemizedOverlay = new CustomItemizedOverlay(getResources().getDrawable(R.drawable.russia_icon), resourceProxy, filter); itemizedOverlay = new CustomItemizedOverlay(getResources().getDrawable(R.drawable.russia_icon), resourceProxy, filter, getActivity());
if (filterType == 0) if (filterType == 0)
{
if (journal != null)
{ {
if (journal != null)
for (int i = 0; i < journal.articleArr.size(); i++)
{ {
ArticleRecordData article = journal.articleArr.get(i);
for (int i = 0; i < journal.articleArr.size(); i++) if (article.geoLat != 0 || article.geoLon != 0)
{ {
ArticleRecordData article = journal.articleArr.get(i); GeoPoint markerPoint = new GeoPoint(article.geoLat, article.geoLon);
if (article.geoLat != 0 || article.geoLon != 0) itemizedOverlay.addOverlayItem(markerPoint, article.name, article.title, journal.articleArr.get(i).previewImageUrl, article.address,
{ article.phone);
GeoPoint markerPoint = new GeoPoint(article.geoLat, article.geoLon);
itemizedOverlay.addOverlayItem(markerPoint, article.name, article.title, journal.articleArr.get(i).previewImageUrl);
}
} }
} }
}
} } else
else {
if (article != null)
{ {
if (article != null)
{
if (article.geoLat != 0 || article.geoLon != 0) if (article.geoLat != 0 || article.geoLon != 0)
{ {
@ -375,19 +595,18 @@ public class OsmMapHolderFragment extends Fragment
} }
} }
itemizedOverlay.addOverlayItem(markerPoint, article.name, article.title, imageUrl); itemizedOverlay.addOverlayItem(markerPoint, article.name, article.title, imageUrl, article.address, article.phone);
} }
}
} }
mapView.getOverlays().clear();
mapView.getOverlays().add(itemizedOverlay);
mapView.invalidate();
} }
mapView.getOverlays().clear();
mapView.getOverlays().add(itemizedOverlay);
mapView.invalidate();
}
} }

View File

@ -2,6 +2,7 @@ package fishrungames.bashgid;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Locale;
import fishrungames.bashgid.core.ArticleManager; import fishrungames.bashgid.core.ArticleManager;
import fishrungames.bashgid.core.ArticleManager.ArticleShortData; import fishrungames.bashgid.core.ArticleManager.ArticleShortData;
@ -39,12 +40,15 @@ public class SearchFragment extends Fragment
ListAdapter listAdapter; ListAdapter listAdapter;
TextView hintTextView;
EditText searchEditText; EditText searchEditText;
ArrayList<ArticleShortData> searchResultArr = new ArrayList<ArticleShortData>(); ArrayList<ArticleShortData> searchResultArr = new ArrayList<ArticleShortData>();
String journalName; String journalName;
String journalTitle; String journalTitle;
String query;
DatabaseSearchArticleTask databaseSearchArticleTask = null; DatabaseSearchArticleTask databaseSearchArticleTask = null;
@ -52,12 +56,22 @@ public class SearchFragment extends Fragment
{ {
this.journalName = ""; this.journalName = "";
this.journalTitle = ""; this.journalTitle = "";
this.query = "";
}
public SearchFragment(String query)
{
this.journalName = "";
this.journalTitle = "";
this.journalTitle = "";
this.query = query;
} }
public SearchFragment(String journalName, String journalTitle) public SearchFragment(String journalName, String journalTitle)
{ {
this.journalName = journalName; this.journalName = journalName;
this.journalTitle = journalTitle; this.journalTitle = journalTitle;
this.query = "";
} }
@Override @Override
@ -65,6 +79,7 @@ public class SearchFragment extends Fragment
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
outState.putString("journalName", journalName); outState.putString("journalName", journalName);
outState.putString("journalTitle", journalTitle); outState.putString("journalTitle", journalTitle);
outState.putString("query", query);
} }
@SuppressLint("InflateParams") @Override @SuppressLint("InflateParams") @Override
@ -73,6 +88,7 @@ public class SearchFragment extends Fragment
if (savedInstanceState != null) { if (savedInstanceState != null) {
journalName = savedInstanceState.getString("journalName"); journalName = savedInstanceState.getString("journalName");
journalTitle = savedInstanceState.getString("journalTitle"); journalTitle = savedInstanceState.getString("journalTitle");
query = savedInstanceState.getString("query");
} }
@ -82,26 +98,36 @@ public class SearchFragment extends Fragment
View header = inflater.inflate(R.layout.search_page_list_header, null); View header = inflater.inflate(R.layout.search_page_list_header, null);
TextView textView = (TextView) header.findViewById(R.id.textView); TextView addressTextView = (TextView) header.findViewById(R.id.addressTextView);
if (journalTitle == null || journalTitle.length() == 0) if (journalTitle == null || journalTitle.length() == 0)
{ {
textView.setText("Search everywhere"); addressTextView.setText(R.string.search_everywhere);
} }
else else
{ {
textView.setText("Search in: " + journalTitle); String search_in = this.getResources().getString(R.string.search_in);
search_in = search_in.replace("%%", journalTitle);
addressTextView.setText(search_in);
} }
hintTextView = (TextView) header.findViewById(R.id.hintTextView);
searchEditText = (EditText) header.findViewById(R.id.editText); searchEditText = (EditText) header.findViewById(R.id.editText);
searchEditText.setText(query);
searchEditText.addTextChangedListener(new TextWatcher(){ searchEditText.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
String text = searchEditText.getText().toString(); query = searchEditText.getText().toString();
CallUpdateNews(text); CallUpdateNews();
} }
@ -115,6 +141,7 @@ public class SearchFragment extends Fragment
listView.setAdapter(listAdapter); listView.setAdapter(listAdapter);
CallUpdateNews();
return rootView; return rootView;
} }
@ -124,6 +151,12 @@ public class SearchFragment extends Fragment
{ {
searchResultArr = articleArr; searchResultArr = articleArr;
listAdapter.notifyDataSetChanged(); listAdapter.notifyDataSetChanged();
String searchResultCount = getResources().getString(R.string.search_result_count);
searchResultCount = searchResultCount.replace("%%", Integer.toString(articleArr.size()));
hintTextView.setText(searchResultCount);
} }
@ -165,13 +198,13 @@ public class SearchFragment extends Fragment
Button button = (Button) view.findViewById(R.id.button); Button button = (Button) view.findViewById(R.id.button);
TextView textView = (TextView) view.findViewById(R.id.dateTextView); TextView dateTextView = (TextView) view.findViewById(R.id.dateTextView);
ImageManager.getInstance().ApplyImageToImageView(imageButton, searchResultArr.get(position).previewImageUrl); ImageManager.getInstance().ApplyImageToImageView(imageButton, searchResultArr.get(position).previewImageUrl);
button.setText(searchResultArr.get(position).title); button.setText(searchResultArr.get(position).title);
textView.setText(NewsDataSource.iso8601Format.format(searchResultArr.get(position).dateTime)); dateTextView.setText(NewsDataSource.iso8601Format.format(searchResultArr.get(position).dateTime));
@ -185,9 +218,11 @@ public class SearchFragment extends Fragment
} }
public void CallUpdateNews(String text) public void CallUpdateNews()
{ {
if (text.length() >= 3)
if (query.length() >= 3 || Locale.getDefault() == Locale.CHINA)
{ {
if (databaseSearchArticleTask != null) if (databaseSearchArticleTask != null)
{ {
@ -198,17 +233,21 @@ public class SearchFragment extends Fragment
databaseSearchArticleTask.mHandler = MainActivity.getInstance().mHandler; databaseSearchArticleTask.mHandler = MainActivity.getInstance().mHandler;
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString("journalName", journalName); bundle.putString("journalName", journalName);
bundle.putString("query", text); bundle.putString("query", query);
databaseSearchArticleTask.execute(bundle); databaseSearchArticleTask.execute(bundle);
hintTextView.setText(R.string.search_is_performing);
} }
else else
{ {
searchResultArr.clear(); searchResultArr.clear();
listAdapter.notifyDataSetChanged(); listAdapter.notifyDataSetChanged();
hintTextView.setText(R.string.search_at_least_3_symbols);
} }
} }

View File

@ -1,6 +1,5 @@
package fishrungames.bashgid; package fishrungames.bashgid;
import fishrungames.bashgid.core.AlbumManager; import fishrungames.bashgid.core.AlbumManager;
import fishrungames.bashgid.core.DatabaseGetAlbumTask; import fishrungames.bashgid.core.DatabaseGetAlbumTask;
import fishrungames.bashgid.core.VideoManager; import fishrungames.bashgid.core.VideoManager;
@ -23,7 +22,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
public class VideoRecordFragment extends Fragment public class VideoRecordFragment extends Fragment
{ {
@ -56,47 +54,48 @@ public class VideoRecordFragment extends Fragment
} }
@Override @Override
public void onSaveInstanceState(final Bundle outState) { public void onSaveInstanceState(final Bundle outState)
super.onSaveInstanceState(outState); {
outState.putString("videoUrl", videoUrl); super.onSaveInstanceState(outState);
} outState.putString("videoUrl", videoUrl);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (savedInstanceState != null) { if (savedInstanceState != null)
{
videoUrl = savedInstanceState.getString("videoUrl"); videoUrl = savedInstanceState.getString("videoUrl");
RestoreVideo(); RestoreVideo();
} }
View rootView = inflater.inflate(R.layout.fragment_video_record_page, container, false); View rootView = inflater.inflate(R.layout.fragment_video_record_page, container, false);
progressBar = (ProgressBar)rootView.findViewById(R.id.progressBar); progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
if (recordData == null) if (recordData == null)
{ {
progressBar.setVisibility(View.VISIBLE); progressBar.setVisibility(View.VISIBLE);
} } else
else {
{ progressBar.setVisibility(View.GONE);
progressBar.setVisibility(View.GONE); }
}
nameTextView = (TextView) rootView.findViewById(R.id.nameTextView); nameTextView = (TextView) rootView.findViewById(R.id.nameTextView);
descriptionTextView = (TextView) rootView.findViewById(R.id.descriptionTextView); descriptionTextView = (TextView) rootView.findViewById(R.id.descriptionTextView);
imageView = (ImageView) rootView.findViewById(R.id.imageView); imageView = (ImageView) rootView.findViewById(R.id.imageView);
RefreshView(); RefreshView();
return rootView; return rootView;
} }
void RestoreVideo() void RestoreVideo()
{ {
//recordData = MainActivity.getInstance().videoDataSource.GetVideoByVideoUrl(videoUrl); // recordData =
// MainActivity.getInstance().videoDataSource.GetVideoByVideoUrl(videoUrl);
recordData = VideoManager.CreateEmptyVideo(); recordData = VideoManager.CreateEmptyVideo();
DatabaseGetVideoTask task = new DatabaseGetVideoTask(); DatabaseGetVideoTask task = new DatabaseGetVideoTask();
@ -136,7 +135,6 @@ else
}); });
} }
public static class DatabaseGetVideoTask extends AsyncTask<String, Integer, Long> public static class DatabaseGetVideoTask extends AsyncTask<String, Integer, Long>
{ {
@ -169,5 +167,4 @@ else
} }
} }
} }

View File

@ -19,13 +19,15 @@ public class AlbumManager
public String name; public String name;
public String title; public String title;
public String description; public String description;
public int hidden;
public AlbumRecordData(String name, String title, String description) public AlbumRecordData(String name, String title, String description, int hidden)
{ {
this.name = name; this.name = name;
this.title = title; this.title = title;
this.description = description; this.description = description;
this.hidden = hidden;
} }
public AlbumRecordData(AlbumRecordData copyFrom) public AlbumRecordData(AlbumRecordData copyFrom)
@ -33,6 +35,7 @@ public class AlbumManager
this.name = copyFrom.name; this.name = copyFrom.name;
this.title = copyFrom.title; this.title = copyFrom.title;
this.description = copyFrom.description; this.description = copyFrom.description;
this.hidden = copyFrom.hidden;
} }
} }
@ -65,16 +68,16 @@ public class AlbumManager
{ {
public int id; public int id;
public AlbumRecord(int id, String name, String title, String description) public AlbumRecord(int id, String name, String title, String description, int hidden)
{ {
super(name, title, description); super(name, title, description, hidden);
this.id = id; this.id = id;
} }
} }
public static AlbumFullData CreateEmptyAlbum() public static AlbumFullData CreateEmptyAlbum()
{ {
AlbumFullData result = new AlbumFullData(new AlbumRecordData("", "", "")); AlbumFullData result = new AlbumFullData(new AlbumRecordData("", "", "", 0));
return result; return result;
} }
@ -91,7 +94,7 @@ public class AlbumManager
{ {
if (!MainActivity.getInstance().albumDataSource.IsAlbumAlreadyExist(albumName)) if (!MainActivity.getInstance().albumDataSource.IsAlbumAlreadyExist(albumName))
{ {
MainActivity.getInstance().albumDataSource.CreateNewAlbum(new AlbumRecordData(albumName, albumName, "")); MainActivity.getInstance().albumDataSource.CreateNewAlbum(new AlbumRecordData(albumName, albumName, "", 0));
} }
MainActivity.getInstance().albumDataSource.AddPhotoToAlbum(imageUrl, albumName); MainActivity.getInstance().albumDataSource.AddPhotoToAlbum(imageUrl, albumName);
@ -118,7 +121,7 @@ public class AlbumManager
{ {
if (!MainActivity.getInstance().channelDataSource.IsChannelAlreadyExist(channelName)) if (!MainActivity.getInstance().channelDataSource.IsChannelAlreadyExist(channelName))
{ {
MainActivity.getInstance().channelDataSource.CreateNewChannel(new ChannelRecordData(channelName, channelName, "")); MainActivity.getInstance().channelDataSource.CreateNewChannel(new ChannelRecordData(channelName, channelName, "", 0));
} }
MainActivity.getInstance().channelDataSource.AddVideoToChannel(videoUrl, channelName); MainActivity.getInstance().channelDataSource.AddVideoToChannel(videoUrl, channelName);
@ -143,7 +146,7 @@ public class AlbumManager
{ {
if (!MainActivity.getInstance().journalDataSource.IsJournalAlreadyExist(journalName)) if (!MainActivity.getInstance().journalDataSource.IsJournalAlreadyExist(journalName))
{ {
MainActivity.getInstance().journalDataSource.CreateNewJournal(new JournalRecordData(journalName, journalName, "")); MainActivity.getInstance().journalDataSource.CreateNewJournal(new JournalRecordData(journalName, journalName, "", 0, 0, 0));
} }
MainActivity.getInstance().journalDataSource.AddArticleToJournal(articleName, journalName); MainActivity.getInstance().journalDataSource.AddArticleToJournal(articleName, journalName);

View File

@ -27,10 +27,14 @@ public class ArticleManager
public String content; public String content;
public double geoLat; public double geoLat;
public double geoLon; public double geoLon;
public String address;
public String phone;
public String externalLink; public String externalLink;
public String externalLinkText;
public Date dateTime; public Date dateTime;
public int hidden;
public ArticleRecordData(String name, int type, String title, String content, double geoLat, double geoLon, String externalLink, Date dateTime) public ArticleRecordData(String name, int type, String title, String content, double geoLat, double geoLon, String address, String phone, String externalLink, String externalLinkText, Date dateTime, int hidden)
{ {
this.name = name; this.name = name;
this.type = type; this.type = type;
@ -38,8 +42,12 @@ public class ArticleManager
this.content = content; this.content = content;
this.geoLat = geoLat; this.geoLat = geoLat;
this.geoLon = geoLon; this.geoLon = geoLon;
this.address = address;
this.phone = phone;
this.externalLink = externalLink; this.externalLink = externalLink;
this.externalLinkText = externalLinkText;
this.dateTime = dateTime; this.dateTime = dateTime;
this.hidden = hidden;
} }
public ArticleRecordData(ArticleRecordData copyFrom) public ArticleRecordData(ArticleRecordData copyFrom)
@ -50,8 +58,12 @@ public class ArticleManager
this.content = copyFrom.content; this.content = copyFrom.content;
this.geoLat = copyFrom.geoLat; this.geoLat = copyFrom.geoLat;
this.geoLon = copyFrom.geoLon; this.geoLon = copyFrom.geoLon;
this.address = copyFrom.address;
this.phone = copyFrom.phone;
this.externalLink = copyFrom.externalLink; this.externalLink = copyFrom.externalLink;
this.externalLinkText = copyFrom.externalLinkText;
this.dateTime = copyFrom.dateTime; this.dateTime = copyFrom.dateTime;
this.hidden = copyFrom.hidden;
} }
} }

View File

@ -17,13 +17,15 @@ public class ChannelManager
public String name; public String name;
public String title; public String title;
public String description; public String description;
public int hidden;
public ChannelRecordData(String name, String title, String description) public ChannelRecordData(String name, String title, String description, int hidden)
{ {
this.name = name; this.name = name;
this.title = title; this.title = title;
this.description = description; this.description = description;
this.hidden = hidden;
} }
public ChannelRecordData(ChannelRecordData copyFrom) public ChannelRecordData(ChannelRecordData copyFrom)
@ -31,6 +33,7 @@ public class ChannelManager
this.name = copyFrom.name; this.name = copyFrom.name;
this.title = copyFrom.title; this.title = copyFrom.title;
this.description = copyFrom.description; this.description = copyFrom.description;
this.hidden = copyFrom.hidden;
} }
} }
@ -50,16 +53,16 @@ public class ChannelManager
{ {
public int id; public int id;
public ChannelRecord(int id, String name, String title, String description) public ChannelRecord(int id, String name, String title, String description, int hidden)
{ {
super(name, title, description); super(name, title, description, hidden);
this.id = id; this.id = id;
} }
} }
public static ChannelFullData CreateEmptyChannel() public static ChannelFullData CreateEmptyChannel()
{ {
ChannelFullData result = new ChannelFullData(new ChannelRecordData("", "", "")); ChannelFullData result = new ChannelFullData(new ChannelRecordData("", "", "", 0));
return result; return result;
} }

View File

@ -200,11 +200,13 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
String name = jObject.getString("name"); String name = jObject.getString("name");
String title = jObject.getString("title"); String title = jObject.getString("title");
String description = jObject.getString("description"); String description = jObject.getString("description");
int hidden = jObject.getInt("hidden");
MainActivity.getInstance().albumDataSource.CreateNewAlbum(new AlbumRecordData( MainActivity.getInstance().albumDataSource.CreateNewAlbum(new AlbumRecordData(
name, name,
title, title,
description)); description,
hidden));
} // End Loop } // End Loop
@ -285,11 +287,13 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
String name = jObject.getString("name"); String name = jObject.getString("name");
String title = jObject.getString("title"); String title = jObject.getString("title");
String description = jObject.getString("description"); String description = jObject.getString("description");
int hidden = jObject.getInt("hidden");
MainActivity.getInstance().channelDataSource.CreateNewChannel(new ChannelRecordData( MainActivity.getInstance().channelDataSource.CreateNewChannel(new ChannelRecordData(
name, name,
title, title,
description)); description,
hidden));
} // End Loop } // End Loop
@ -339,8 +343,12 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
String content = jObject.getString("content"); String content = jObject.getString("content");
double geoLat = jObject.getDouble("geoLat"); double geoLat = jObject.getDouble("geoLat");
double geoLon = jObject.getDouble("geoLon"); double geoLon = jObject.getDouble("geoLon");
String address = jObject.getString("address");
String phone = jObject.getString("phone");
String externalLink = jObject.getString("externalLink"); String externalLink = jObject.getString("externalLink");
String externalLinkText = jObject.getString("externalLinkText");
Date dateTime = ArticleManager.iso8601Format.parse(jObject.getString("dateTime")); Date dateTime = ArticleManager.iso8601Format.parse(jObject.getString("dateTime"));
int hidden = jObject.getInt("hidden");
MainActivity.getInstance().articleDataSource.CreateNewArticle(new ArticleRecordData( MainActivity.getInstance().articleDataSource.CreateNewArticle(new ArticleRecordData(
name, name,
@ -349,9 +357,12 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
content, content,
geoLat, geoLat,
geoLon, geoLon,
address,
phone,
externalLink, externalLink,
dateTime externalLinkText,
)); dateTime,
hidden));
} catch (ParseException e) } catch (ParseException e)
@ -379,11 +390,17 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
String name = jObject.getString("name"); String name = jObject.getString("name");
String title = jObject.getString("title"); String title = jObject.getString("title");
String description = jObject.getString("description"); String description = jObject.getString("description");
int hidden = jObject.getInt("hidden");
int geoCategory = jObject.getInt("geoCategory");
int main = jObject.getInt("main");
MainActivity.getInstance().journalDataSource.CreateNewJournal(new JournalRecordData( MainActivity.getInstance().journalDataSource.CreateNewJournal(new JournalRecordData(
name, name,
title, title,
description)); description,
hidden,
geoCategory,
main));
} // End Loop } // End Loop
@ -473,8 +490,11 @@ public class DatabaseDownloadTask extends AsyncTask<Bundle, Integer, Long>
String textEn = jObject.getString("textEn"); String textEn = jObject.getString("textEn");
String textRu = jObject.getString("textRu"); String textRu = jObject.getString("textRu");
String textZh = jObject.getString("textZh"); String textZh = jObject.getString("textZh");
String textEnUp = jObject.getString("textEnUp");
String textRuUp = jObject.getString("textRuUp");
String textZhUp = jObject.getString("textZhUp");
MainActivity.getInstance().translationDataSource.CreateNewTranslation(new TranslationRecordData(name, textEn, textRu, textZh)); MainActivity.getInstance().translationDataSource.CreateNewTranslation(new TranslationRecordData(name, textEn, textRu, textZh, textEnUp, textRuUp, textZhUp));
} // End Loop } // End Loop

View File

@ -0,0 +1,46 @@
package fishrungames.bashgid.core;
import java.util.ArrayList;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import fishrungames.bashgid.MainActivity;
import fishrungames.bashgid.core.JournalManager.JournalRecordData;
import fishrungames.bashgid.core.JournalManager.JournalSemiFullData;
public class DatabaseGetGeoJournalListTask extends AsyncTask<String, Integer, Long>
{
ArrayList<JournalRecordData> geoJournalList;
public Handler mHandler;
protected Long doInBackground(String... queryArr)
{
geoJournalList = MainActivity.getInstance().journalDataSource.GetGeoJournalList();
return (long) 0;
}
protected void onProgressUpdate(Integer... progress)
{
Message completeMessage = mHandler.obtainMessage(MainActivity.DATABASE_GET_GEO_JOURNAL_LIST_STATE_UPDATE, geoJournalList);
completeMessage.sendToTarget();
}
protected void onPostExecute(Long result)
{
Message completeMessage = mHandler.obtainMessage(MainActivity.DATABASE_GET_GEO_JOURNAL_LIST_STATE_FINISHED, geoJournalList);
completeMessage.sendToTarget();
}
}

View File

@ -11,23 +11,22 @@ import fishrungames.bashgid.core.JournalManager.JournalSemiFullData;
public class DatabaseGetJournalListTask extends AsyncTask<String, Integer, Long> public class DatabaseGetJournalListTask extends AsyncTask<String, Integer, Long>
{ {
ArrayList<JournalSemiFullData> journalList; ArrayList<JournalSemiFullData> journalList;
public Handler mHandler; public Handler mHandler;
protected Long doInBackground(String... queryArr) protected Long doInBackground(String... queryArr)
{ {
String superJournal = ""; //String superJournal = "";
if (queryArr.length > 0) if (queryArr.length > 0)
{ {
superJournal = queryArr[0]; journalList = MainActivity.getInstance().journalDataSource.GetJournalListMain(3); //Xperimental -- need to pass exactly how many articles
journalList = MainActivity.getInstance().journalDataSource.GetJournalList(superJournal, 3); //Xperimental -- need to pass exactly how many articles
} }
else else
{ {
journalList = MainActivity.getInstance().journalDataSource.GetAllJournalList(3); //Xperimental -- need to pass exactly how many articles journalList = MainActivity.getInstance().journalDataSource.GetAllJournalListExceptHidden(3); //Xperimental -- need to pass exactly how many articles
} }
@ -48,4 +47,5 @@ public class DatabaseGetJournalListTask extends AsyncTask<String, Integer, Long>
completeMessage.sendToTarget(); completeMessage.sendToTarget();
} }
} }

View File

@ -2,6 +2,10 @@ package fishrungames.bashgid.core;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
@ -19,24 +23,61 @@ public class DatabaseSearchArticleTask extends AsyncTask<Bundle, Integer, Long>
ArrayList<ArticleShortData> articleArr = new ArrayList<ArticleShortData>(); ArrayList<ArticleShortData> articleArr = new ArrayList<ArticleShortData>();
ArrayList<String> translationNamesArr = new ArrayList<String>();
protected Long doInBackground(Bundle... queryArr) protected Long doInBackground(Bundle... queryArr)
{ {
String query = queryArr[0].getString("query"); String query = queryArr[0].getString("query");
String journalName = queryArr[0].getString("journalName"); String journalName = queryArr[0].getString("journalName");
query = query.toUpperCase(Locale.getDefault());
if (journalName != null && journalName.length() > 0) if (Locale.getDefault().equals(new Locale("ru")))
{ {
articleArr = MainActivity.getInstance().articleDataSource.SearchArticleByQueryAndJournal(query, journalName);
translationNamesArr = MainActivity.getInstance().translationDataSource.SearchRussian(query);
}
else if (Locale.getDefault() == Locale.CHINA)
{
translationNamesArr = MainActivity.getInstance().translationDataSource.SearchChinese(query);
} }
else else
{ {
articleArr = MainActivity.getInstance().articleDataSource.SearchArticleByQuery(query); translationNamesArr = MainActivity.getInstance().translationDataSource.SearchEnglish(query);
} }
//articleArr.addAll(journal.articleArr); if (journalName != null && journalName.length() > 0)
{
for (String translationName : translationNamesArr)
{
articleArr.addAll(MainActivity.getInstance().articleDataSource.SearchArticleByTitleOrTextInJournal(translationName, journalName));
}
}
else
{
for (String translationName : translationNamesArr)
{
articleArr.addAll(MainActivity.getInstance().articleDataSource.SearchArticleByTitleOrText(translationName));
}
}
//Remove duplicates
Set<ArticleShortData> articleSet = new TreeSet<ArticleShortData>(new Comparator<ArticleShortData>() {
@Override
public int compare(ArticleShortData lhs, ArticleShortData rhs)
{
return lhs.name.compareTo(rhs.name);
}
});
articleSet.addAll(articleArr);
articleArr.clear();
articleArr.addAll(articleSet);
return (long) 0; return (long) 0;
} }

View File

@ -19,13 +19,19 @@ public class JournalManager
public String name; public String name;
public String title; public String title;
public String description; public String description;
public int hidden;
public int geoCategory;
public int main;
public JournalRecordData(String name, String title, String description) public JournalRecordData(String name, String title, String description, int hidden, int geoCategory, int main)
{ {
this.name = name; this.name = name;
this.title = title; this.title = title;
this.description = description; this.description = description;
this.hidden = hidden;
this.geoCategory = geoCategory;
this.main = main;
} }
public JournalRecordData(JournalRecordData copyFrom) public JournalRecordData(JournalRecordData copyFrom)
@ -33,6 +39,9 @@ public class JournalManager
this.name = copyFrom.name; this.name = copyFrom.name;
this.title = copyFrom.title; this.title = copyFrom.title;
this.description = copyFrom.description; this.description = copyFrom.description;
this.hidden = copyFrom.hidden;
this.geoCategory = copyFrom.geoCategory;
this.main = copyFrom.main;
} }
} }
@ -56,9 +65,9 @@ public class JournalManager
{ {
public int id; public int id;
public JournalRecord(int id, String name, String title, String description) public JournalRecord(int id, String name, String title, String description, int hidden, int geoCategory, int main)
{ {
super(name, title, description); super(name, title, description, hidden, geoCategory, main);
this.id = id; this.id = id;
} }
} }
@ -66,7 +75,7 @@ public class JournalManager
public static JournalSemiFullData CreateEmptyJournal() public static JournalSemiFullData CreateEmptyJournal()
{ {
JournalSemiFullData result = new JournalSemiFullData(new JournalRecordData("", "", "")); JournalSemiFullData result = new JournalSemiFullData(new JournalRecordData("", "", "", 0, 0, 0));
return result; return result;
} }

View File

@ -14,6 +14,7 @@ import android.util.Log;
import fishrungames.bashgid.MainActivity; import fishrungames.bashgid.MainActivity;
import fishrungames.bashgid.R;
import fishrungames.bashgid.core.ArticleManager.ArticleRecordData; import fishrungames.bashgid.core.ArticleManager.ArticleRecordData;
@ -360,9 +361,12 @@ public class NewsManager {
rss2Item.description.replace("'", "''").replace("\"", "\"\""), rss2Item.description.replace("'", "''").replace("\"", "\"\""),
0, 0,
0, 0,
"",
"",
rss2Item.link, rss2Item.link,
rss2Item.pubDate MainActivity.getInstance().getResources().getString(R.string.dialog_open),
); rss2Item.pubDate,
0);
AlbumManager.AddNewArticleToJournal(newsArticle, "news"); AlbumManager.AddNewArticleToJournal(newsArticle, "news");
//newsRecordArr.add(newsArticle); //newsRecordArr.add(newsArticle);

View File

@ -15,14 +15,13 @@ import android.util.Log;
public class RssReader { public class RssReader {
public static class Rss2Item public static class Rss2Item
{ {
String title; String title;
String link; String link;
String description; String description;
public static class Rss2Enclosure public static class Rss2Enclosure
{ {
String url; String url;

View File

@ -10,14 +10,21 @@ public class TranslationManager
public String textEn; public String textEn;
public String textRu; public String textRu;
public String textZh; public String textZh;
public String textEnUp;
public String textRuUp;
public String textZhUp;
public TranslationRecordData(String name, String textEn, String textRu, String textZh) public TranslationRecordData(String name, String textEn, String textRu, String textZh, String textEnUp, String textRuUp, String textZhUp)
{ {
this.name = name; this.name = name;
this.textEn = textEn; this.textEn = textEn;
this.textRu = textRu; this.textRu = textRu;
this.textZh = textZh; this.textZh = textZh;
this.textEnUp = textEnUp;
this.textRuUp = textRuUp;
this.textZhUp = textZhUp;
} }
public TranslationRecordData(TranslationRecordData copyFrom) public TranslationRecordData(TranslationRecordData copyFrom)
@ -26,6 +33,9 @@ public class TranslationManager
this.textEn = copyFrom.textEn; this.textEn = copyFrom.textEn;
this.textRu = copyFrom.textRu; this.textRu = copyFrom.textRu;
this.textZh = copyFrom.textZh; this.textZh = copyFrom.textZh;
this.textEnUp = copyFrom.textEnUp;
this.textRuUp = copyFrom.textRuUp;
this.textZhUp = copyFrom.textZhUp;
} }
} }

View File

@ -40,6 +40,7 @@ public class AlbumDataSource
values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name); values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name);
values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title); values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title);
values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description); values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description);
values.put(BashgidSqliteHelper.COLUMN_HIDDEN, recordData.hidden);
if (!innerIsAlbumAlreadyExist(recordData.name, database)) if (!innerIsAlbumAlreadyExist(recordData.name, database))
{ {
@ -196,7 +197,7 @@ public class AlbumDataSource
return result; return result;
} }
public ArrayList<AlbumShortData> GetAllAlbumShortData() public ArrayList<AlbumShortData> GetAllAlbumShortDataExceptHidden()
{ {
ArrayList<AlbumShortData> result = new ArrayList<AlbumShortData>(); ArrayList<AlbumShortData> result = new ArrayList<AlbumShortData>();
@ -208,7 +209,7 @@ public class AlbumDataSource
try try
{ {
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ALBUM, new String[] { BashgidSqliteHelper.COLUMN_NAME, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ALBUM, new String[] { BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION }, null, null, null, null, null, null); BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION, BashgidSqliteHelper.COLUMN_HIDDEN }, BashgidSqliteHelper.COLUMN_HIDDEN + "=0", null, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
@ -217,7 +218,7 @@ public class AlbumDataSource
do do
{ {
AlbumShortData shortData = new AlbumShortData(new AlbumRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2))); AlbumShortData shortData = new AlbumShortData(new AlbumRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3)));
ArrayList<String> imageUrlArr = innerGetImageUrlArrInAlbum(shortData.name, database); ArrayList<String> imageUrlArr = innerGetImageUrlArrInAlbum(shortData.name, database);
@ -326,13 +327,13 @@ public class AlbumDataSource
AlbumRecordData result = null; AlbumRecordData result = null;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ALBUM, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ALBUM, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE,
BashgidSqliteHelper.COLUMN_DESCRIPTION }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null); BashgidSqliteHelper.COLUMN_DESCRIPTION, BashgidSqliteHelper.COLUMN_HIDDEN }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
if (cursor.moveToFirst()) if (cursor.moveToFirst())
{ {
result = new AlbumRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2)); result = new AlbumRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3));
} }
cursor.close(); cursor.close();

View File

@ -59,8 +59,12 @@ public class ArticleDataSource
values.put(BashgidSqliteHelper.COLUMN_CONTENT, recordData.content); values.put(BashgidSqliteHelper.COLUMN_CONTENT, recordData.content);
values.put(BashgidSqliteHelper.COLUMN_GEOLAT, recordData.geoLat); values.put(BashgidSqliteHelper.COLUMN_GEOLAT, recordData.geoLat);
values.put(BashgidSqliteHelper.COLUMN_GEOLON, recordData.geoLon); values.put(BashgidSqliteHelper.COLUMN_GEOLON, recordData.geoLon);
values.put(BashgidSqliteHelper.COLUMN_ADDRESS, recordData.address);
values.put(BashgidSqliteHelper.COLUMN_PHONE, recordData.phone);
values.put(BashgidSqliteHelper.COLUMN_EXTERNAL_LINK, recordData.externalLink); values.put(BashgidSqliteHelper.COLUMN_EXTERNAL_LINK, recordData.externalLink);
values.put(BashgidSqliteHelper.COLUMN_EXTERNAL_LINK_TEXT, recordData.externalLinkText);
values.put(BashgidSqliteHelper.COLUMN_DATE_TIME, ArticleManager.iso8601Format.format(recordData.dateTime)); values.put(BashgidSqliteHelper.COLUMN_DATE_TIME, ArticleManager.iso8601Format.format(recordData.dateTime));
values.put(BashgidSqliteHelper.COLUMN_HIDDEN, recordData.hidden);
if (!innerIsArticleAlreadyExist(recordData.name, database)) if (!innerIsArticleAlreadyExist(recordData.name, database))
{ {
@ -211,7 +215,11 @@ public class ArticleDataSource
result.title = MainActivity.getInstance().translationDataSource.TryTranslateText(result.title, database); result.title = MainActivity.getInstance().translationDataSource.TryTranslateText(result.title, database);
result.content = MainActivity.getInstance().translationDataSource.TryTranslateText(result.content, database); result.content = MainActivity.getInstance().translationDataSource.TryTranslateText(result.content, database);
result.address = MainActivity.getInstance().translationDataSource.TryTranslateText(result.address, database);
result.externalLink = MainActivity.getInstance().translationDataSource.TryTranslateText(result.externalLink, database); result.externalLink = MainActivity.getInstance().translationDataSource.TryTranslateText(result.externalLink, database);
result.externalLinkText = MainActivity.getInstance().translationDataSource.TryTranslateText(result.externalLinkText, database);
} }
@ -243,6 +251,61 @@ public class ArticleDataSource
return result; return result;
} }
public ArrayList<ArticleShortData> SearchArticleByTitleOrText(String query)
{
ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
ArrayList<String> articleNameArr = InnerSearchArticleByTitleOrText(query, database);
for (String articleName : articleNameArr)
{
result.add(InnerGetArticleShortData(articleName, database));
}
} finally
{
dbHelper.close();
}
}
return result;
}
public ArrayList<ArticleShortData> SearchArticleByTitleOrTextInJournal(String query, String journalName)
{
ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
ArrayList<String> articleNameArr = InnerSearchArticleByTitleOrText(query, database);
for (String articleName : articleNameArr)
{
if (MainActivity.getInstance().journalDataSource.InnerArticleJournalRelationAlreadyExist(articleName, journalName, database))
{
result.add(InnerGetArticleShortData(articleName, database));
}
}
} finally
{
dbHelper.close();
}
}
return result;
}
public ArrayList<ArticleShortData> SearchArticleByQuery(String query) public ArrayList<ArticleShortData> SearchArticleByQuery(String query)
{ {
ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>(); ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>();
@ -317,6 +380,29 @@ public class ArticleDataSource
} }
public boolean InnerArticleIsHidden(String name, SQLiteDatabase database)
{
boolean result = false;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] { BashgidSqliteHelper.COLUMN_NAME },
BashgidSqliteHelper.COLUMN_NAME + "=? AND " +BashgidSqliteHelper.COLUMN_HIDDEN + "=1", new String[] { name }, null, null, null, null);
if (cursor != null)
{
if (cursor.getCount() > 0)
{
result = true;
}
cursor.close();
cursor = null;
}
return result;
}
public ArticleShortData InnerGetArticleShortData(String name, SQLiteDatabase database) public ArticleShortData InnerGetArticleShortData(String name, SQLiteDatabase database)
{ {
ArticleShortData result = null; ArticleShortData result = null;
@ -450,7 +536,19 @@ public class ArticleDataSource
ArticleRecordData result = null; ArticleRecordData result = null;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] { Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] {
BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TYPE, BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_CONTENT, BashgidSqliteHelper.COLUMN_GEOLAT, BashgidSqliteHelper.COLUMN_GEOLON, BashgidSqliteHelper.COLUMN_EXTERNAL_LINK,BashgidSqliteHelper.COLUMN_DATE_TIME }, BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TYPE,
BashgidSqliteHelper.COLUMN_TITLE,
BashgidSqliteHelper.COLUMN_CONTENT,
BashgidSqliteHelper.COLUMN_GEOLAT,
BashgidSqliteHelper.COLUMN_GEOLON,
BashgidSqliteHelper.COLUMN_ADDRESS,
BashgidSqliteHelper.COLUMN_PHONE,
BashgidSqliteHelper.COLUMN_EXTERNAL_LINK,
BashgidSqliteHelper.COLUMN_EXTERNAL_LINK_TEXT,
BashgidSqliteHelper.COLUMN_DATE_TIME,
BashgidSqliteHelper.COLUMN_HIDDEN
},
BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null); BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null);
if (cursor != null) if (cursor != null)
@ -462,7 +560,7 @@ public class ArticleDataSource
try try
{ {
d = ArticleManager.iso8601Format.parse(cursor.getString(7)); d = ArticleManager.iso8601Format.parse(cursor.getString(10));
} }
catch(ParseException e) catch(ParseException e)
{ {
@ -477,7 +575,11 @@ public class ArticleDataSource
cursor.getDouble(4), cursor.getDouble(4),
cursor.getDouble(5), cursor.getDouble(5),
cursor.getString(6), cursor.getString(6),
d cursor.getString(7),
cursor.getString(8),
cursor.getString(9),
d,
cursor.getInt(11)
); );
} }
@ -495,7 +597,19 @@ public class ArticleDataSource
ArrayList<ArticleRecordData> result = new ArrayList<ArticleRecordData>(); ArrayList<ArticleRecordData> result = new ArrayList<ArticleRecordData>();
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] { Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] {
BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TYPE, BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_CONTENT, BashgidSqliteHelper.COLUMN_GEOLAT, BashgidSqliteHelper.COLUMN_GEOLON, BashgidSqliteHelper.COLUMN_EXTERNAL_LINK,BashgidSqliteHelper.COLUMN_DATE_TIME }, BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TYPE,
BashgidSqliteHelper.COLUMN_TITLE,
BashgidSqliteHelper.COLUMN_CONTENT,
BashgidSqliteHelper.COLUMN_GEOLAT,
BashgidSqliteHelper.COLUMN_GEOLON,
BashgidSqliteHelper.COLUMN_ADDRESS,
BashgidSqliteHelper.COLUMN_PHONE,
BashgidSqliteHelper.COLUMN_EXTERNAL_LINK,
BashgidSqliteHelper.COLUMN_EXTERNAL_LINK_TEXT,
BashgidSqliteHelper.COLUMN_DATE_TIME,
BashgidSqliteHelper.COLUMN_HIDDEN
},
BashgidSqliteHelper.COLUMN_TITLE + " LIKE ?", new String[] { "%" + query + "%" }, null, null, null, null); BashgidSqliteHelper.COLUMN_TITLE + " LIKE ?", new String[] { "%" + query + "%" }, null, null, null, null);
if (cursor != null) if (cursor != null)
@ -510,7 +624,7 @@ public class ArticleDataSource
try try
{ {
d = ArticleManager.iso8601Format.parse(cursor.getString(7)); d = ArticleManager.iso8601Format.parse(cursor.getString(10));
} }
catch(ParseException e) catch(ParseException e)
{ {
@ -525,7 +639,11 @@ public class ArticleDataSource
cursor.getDouble(4), cursor.getDouble(4),
cursor.getDouble(5), cursor.getDouble(5),
cursor.getString(6), cursor.getString(6),
d cursor.getString(7),
cursor.getString(8),
cursor.getString(9),
d,
cursor.getInt(11)
)); ));
} }
@ -540,6 +658,39 @@ public class ArticleDataSource
} }
private ArrayList<String> InnerSearchArticleByTitleOrText(String query, SQLiteDatabase database)
{
ArrayList<String> result = new ArrayList<String>();
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_ARTICLE, new String[] {
BashgidSqliteHelper.COLUMN_NAME
},
BashgidSqliteHelper.COLUMN_TITLE + " = ? OR " + BashgidSqliteHelper.COLUMN_CONTENT + " = ?", new String[] { query, query }, null, null, null, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
result.add(cursor.getString(0));
}
while (cursor.moveToNext());
}
cursor.close();
cursor = null;
}
return result;
}
public ArrayList<String> innerGetAlbumNameArrInArticle(String name, SQLiteDatabase database) public ArrayList<String> innerGetAlbumNameArrInArticle(String name, SQLiteDatabase database)
{ {
ArrayList<String> result = new ArrayList<String>(); ArrayList<String> result = new ArrayList<String>();

View File

@ -43,11 +43,14 @@ public class BashgidSqliteHelper extends SQLiteOpenHelper
public static final String COLUMN_IMAGE_HASH = "imageHash"; public static final String COLUMN_IMAGE_HASH = "imageHash";
public static final String COLUMN_GEOLAT = "geoLat"; public static final String COLUMN_GEOLAT = "geoLat";
public static final String COLUMN_GEOLON = "geoLon"; public static final String COLUMN_GEOLON = "geoLon";
public static final String COLUMN_ADDRESS = "address";
public static final String COLUMN_PHONE = "phone";
public static final String COLUMN_PUBDATE = "pubDate"; public static final String COLUMN_PUBDATE = "pubDate";
public static final String COLUMN_TYPE = "type"; public static final String COLUMN_TYPE = "type";
public static final String COLUMN_CONTENT = "content"; public static final String COLUMN_CONTENT = "content";
public static final String COLUMN_EXTERNAL_LINK = "externalLink"; public static final String COLUMN_EXTERNAL_LINK = "externalLink";
public static final String COLUMN_EXTERNAL_LINK_TEXT = "externalLinkText";
public static final String COLUMN_ALBUM_NAME = "albumName"; public static final String COLUMN_ALBUM_NAME = "albumName";
public static final String COLUMN_CHANNEL_NAME = "channelName"; public static final String COLUMN_CHANNEL_NAME = "channelName";
@ -58,12 +61,21 @@ public class BashgidSqliteHelper extends SQLiteOpenHelper
public static final String COLUMN_PREVIEW_IMAGE_URL = "previewImageUrl"; public static final String COLUMN_PREVIEW_IMAGE_URL = "previewImageUrl";
public static final String COLUMN_PREVIEW_IMAGE_HASH = "previewImageHash"; public static final String COLUMN_PREVIEW_IMAGE_HASH = "previewImageHash";
public static final String COLUMN_HIDDEN = "hidden";
public static final String COLUMN_GEOCATEGORY = "geoCategory";
public static final String COLUMN_MAIN = "main";
public static final String COLUMN_DATE_TIME = "dateTime"; public static final String COLUMN_DATE_TIME = "dateTime";
public static final String COLUMN_TEXT_EN = "textEn"; public static final String COLUMN_TEXT_EN = "textEn";
public static final String COLUMN_TEXT_RU = "textRu"; public static final String COLUMN_TEXT_RU = "textRu";
public static final String COLUMN_TEXT_ZH = "textZh"; public static final String COLUMN_TEXT_ZH = "textZh";
public static final String COLUMN_TEXT_EN_UP = "textEnUp";
public static final String COLUMN_TEXT_RU_UP = "textRuUp";
public static final String COLUMN_TEXT_ZH_UP = "textZhUp";
private static final String DATABASE_NAME = "bashgid.db"; private static final String DATABASE_NAME = "bashgid.db";
private static final int DATABASE_VERSION = 1; private static final int DATABASE_VERSION = 1;
@ -79,7 +91,7 @@ public class BashgidSqliteHelper extends SQLiteOpenHelper
+ " real not null" + ", " + COLUMN_GEOLON + " real not null" + ");"; + " real not null" + ", " + COLUMN_GEOLON + " real not null" + ");";
private static final String TABLE_ALBUM_CREATE = "create table " + TABLE_ALBUM + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null" private static final String TABLE_ALBUM_CREATE = "create table " + TABLE_ALBUM + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null"
+ ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ");"; + ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ", " + COLUMN_HIDDEN + " integer not null" + ");";
private static final String TABLE_PHOTO_ALBUM_RELATION_CREATE = "create table " + TABLE_PHOTO_ALBUM_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_IMAGE_URL + " text not null" private static final String TABLE_PHOTO_ALBUM_RELATION_CREATE = "create table " + TABLE_PHOTO_ALBUM_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_IMAGE_URL + " text not null"
+ ", " + COLUMN_NAME + " text not null" + ");"; + ", " + COLUMN_NAME + " text not null" + ");";
@ -87,7 +99,11 @@ public class BashgidSqliteHelper extends SQLiteOpenHelper
private static final String TABLE_ARTICLE_CREATE = "create table " + TABLE_ARTICLE + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null" private static final String TABLE_ARTICLE_CREATE = "create table " + TABLE_ARTICLE + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null"
+ ", " + COLUMN_TYPE + " integer not null" + ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_CONTENT + " text not null" + ", " + COLUMN_GEOLAT + ", " + COLUMN_TYPE + " integer not null" + ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_CONTENT + " text not null" + ", " + COLUMN_GEOLAT
+ " real not null" + ", " + COLUMN_GEOLON + " real not null" + ", " + COLUMN_EXTERNAL_LINK + " text not null" + ", " + COLUMN_DATE_TIME + " text not null" +");"; + " real not null" + ", " + COLUMN_GEOLON + " real not null" + ", "
+ COLUMN_ADDRESS + " text not null" + ", "
+ COLUMN_PHONE + " text not null" + ", "
+ COLUMN_EXTERNAL_LINK + " text not null" + ", "
+ COLUMN_EXTERNAL_LINK_TEXT + " text not null" + ", "+ COLUMN_DATE_TIME + " text not null" + ", " + COLUMN_HIDDEN + " integer not null" +");";
private static final String TABLE_ALBUM_ARTICLE_RELATION_CREATE = "create table " + TABLE_ALBUM_ARTICLE_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_ALBUM_NAME + " text not null" private static final String TABLE_ALBUM_ARTICLE_RELATION_CREATE = "create table " + TABLE_ALBUM_ARTICLE_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_ALBUM_NAME + " text not null"
+ ", " + COLUMN_ARTICLE_NAME + " text not null" + ");"; + ", " + COLUMN_ARTICLE_NAME + " text not null" + ");";
@ -101,19 +117,20 @@ public class BashgidSqliteHelper extends SQLiteOpenHelper
+ ", " + COLUMN_PREVIEW_IMAGE_HASH + " text not null"+ ");"; + ", " + COLUMN_PREVIEW_IMAGE_HASH + " text not null"+ ");";
private static final String TABLE_CHANNEL_CREATE = "create table " + TABLE_CHANNEL + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null" private static final String TABLE_CHANNEL_CREATE = "create table " + TABLE_CHANNEL + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null"
+ ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ");"; + ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ", " + COLUMN_HIDDEN + " integer not null" + ");";
private static final String TABLE_VIDEO_CHANNEL_RELATION_CREATE = "create table " + TABLE_VIDEO_CHANNEL_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_VIDEO_URL + " text not null" private static final String TABLE_VIDEO_CHANNEL_RELATION_CREATE = "create table " + TABLE_VIDEO_CHANNEL_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_VIDEO_URL + " text not null"
+ ", " + COLUMN_NAME + " text not null" + ");"; + ", " + COLUMN_NAME + " text not null" + ");";
private static final String TABLE_JOURNAL_CREATE = "create table " + TABLE_JOURNAL + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null" private static final String TABLE_JOURNAL_CREATE = "create table " + TABLE_JOURNAL + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null"
+ ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ");"; + ", " + COLUMN_TITLE + " text not null" + ", " + COLUMN_DESCRIPTION + " text not null" + ", " + COLUMN_HIDDEN + " integer not null" + ", " + COLUMN_GEOCATEGORY + " integer not null" + ", " + COLUMN_MAIN + " integer not null" + ");";
private static final String TABLE_ARTICLE_JOURNAL_RELATION_CREATE = "create table " + TABLE_ARTICLE_JOURNAL_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_ARTICLE_NAME + " text not null" private static final String TABLE_ARTICLE_JOURNAL_RELATION_CREATE = "create table " + TABLE_ARTICLE_JOURNAL_RELATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_ARTICLE_NAME + " text not null"
+ ", " + COLUMN_JOURNAL_NAME + " text not null" + ");"; + ", " + COLUMN_JOURNAL_NAME + " text not null" + ");";
private static final String TABLE_TRANSLATION_CREATE = "create table " + TABLE_TRANSLATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null" private static final String TABLE_TRANSLATION_CREATE = "create table " + TABLE_TRANSLATION + "(" + COLUMN_ID + " integer primary key autoincrement" + ", " + COLUMN_NAME + " text not null"
+ ", " + COLUMN_TEXT_EN + " text not null"+ ", " + COLUMN_TEXT_RU + " text not null" + ", " + COLUMN_TEXT_ZH + " text not null" + ");"; + ", " + COLUMN_TEXT_EN + " text not null"+ ", " + COLUMN_TEXT_RU + " text not null" + ", " + COLUMN_TEXT_ZH + " text not null"
+ ", " + COLUMN_TEXT_EN_UP + " text not null"+ ", " + COLUMN_TEXT_RU_UP + " text not null" + ", " + COLUMN_TEXT_ZH_UP + " text not null" + ");";
public final Semaphore mutex = new Semaphore(1, true); public final Semaphore mutex = new Semaphore(1, true);

View File

@ -40,6 +40,7 @@ public class ChannelDataSource
values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name); values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name);
values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title); values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title);
values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description); values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description);
values.put(BashgidSqliteHelper.COLUMN_HIDDEN, recordData.hidden);
if (!innerIsChannelAlreadyExist(recordData.name, database)) if (!innerIsChannelAlreadyExist(recordData.name, database))
{ {
@ -231,14 +232,15 @@ public class ChannelDataSource
ChannelRecordData result = null; ChannelRecordData result = null;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_CHANNEL, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_CHANNEL, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE,
BashgidSqliteHelper.COLUMN_DESCRIPTION }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null); BashgidSqliteHelper.COLUMN_DESCRIPTION, BashgidSqliteHelper.COLUMN_HIDDEN }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
if (cursor.moveToFirst()) if (cursor.moveToFirst())
{ {
result = new ChannelRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2)); result = new ChannelRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3));
} }
cursor.close(); cursor.close();

View File

@ -46,6 +46,9 @@ public class JournalDataSource
values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name); values.put(BashgidSqliteHelper.COLUMN_NAME, recordData.name);
values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title); values.put(BashgidSqliteHelper.COLUMN_TITLE, recordData.title);
values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description); values.put(BashgidSqliteHelper.COLUMN_DESCRIPTION, recordData.description);
values.put(BashgidSqliteHelper.COLUMN_HIDDEN, recordData.hidden);
values.put(BashgidSqliteHelper.COLUMN_GEOCATEGORY, recordData.geoCategory);
values.put(BashgidSqliteHelper.COLUMN_MAIN, recordData.main);
if (!innerIsJournalAlreadyExist(recordData.name, database)) if (!innerIsJournalAlreadyExist(recordData.name, database))
{ {
@ -116,8 +119,8 @@ public class JournalDataSource
} }
} }
/*
public ArrayList<ArticleShortData> GetRecentArticles(String journalName, int count) public ArrayList<ArticleShortData> GetRecentArticlesExceptHidden(String journalName, int count)
{ {
ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>(); ArrayList<ArticleShortData> result = new ArrayList<ArticleShortData>();
@ -137,8 +140,11 @@ public class JournalDataSource
for (String articleName : articleNameArr) for (String articleName : articleNameArr)
{ {
if (!MainActivity.getInstance().articleDataSource.InnerArticleIsHidden(articleName, database))
{
result.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(articleName, database)); result.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(articleName, database));
} }
}
Collections.sort(result, new ArticleDataSource.DateSortComparator()); Collections.sort(result, new ArticleDataSource.DateSortComparator());
@ -156,7 +162,7 @@ public class JournalDataSource
} }
return result; return result;
} }*/
public JournalSemiFullData GetJournalSemiFullData(String name) public JournalSemiFullData GetJournalSemiFullData(String name)
{ {
@ -190,7 +196,7 @@ public class JournalDataSource
return result; return result;
} }
public ArrayList<JournalSemiFullData> GetAllJournalList(int count) public ArrayList<JournalSemiFullData> GetAllJournalListExceptHidden(int count)
{ {
ArrayList<JournalSemiFullData> result = new ArrayList<JournalSemiFullData>(); ArrayList<JournalSemiFullData> result = new ArrayList<JournalSemiFullData>();
SQLiteDatabase database = dbHelper.getWritableDatabase(); SQLiteDatabase database = dbHelper.getWritableDatabase();
@ -201,7 +207,7 @@ public class JournalDataSource
{ {
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION }, null, null, null, null, null, null); BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION, BashgidSqliteHelper.COLUMN_HIDDEN, BashgidSqliteHelper.COLUMN_GEOCATEGORY, BashgidSqliteHelper.COLUMN_MAIN }, BashgidSqliteHelper.COLUMN_HIDDEN + "=0", null, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
@ -212,11 +218,11 @@ public class JournalDataSource
{ {
String name = cursor.getString(0); //String name = cursor.getString(0);
if (!name.equals("news") && !name.equals("map")) //if (!name.equals("news") && !name.equals("map"))
{ //{
JournalSemiFullData journal = new JournalSemiFullData(new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2))); JournalSemiFullData journal = new JournalSemiFullData(new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getInt(5)));
ArrayList<String> articleArr; ArrayList<String> articleArr;
@ -230,8 +236,10 @@ public class JournalDataSource
} }
for (String article : articleArr) for (String article : articleArr)
{ {
if (!MainActivity.getInstance().articleDataSource.InnerArticleIsHidden(article, database))
{
journal.articleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database)); journal.articleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database));
}
} }
journal.title = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.title, database); journal.title = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.title, database);
@ -239,7 +247,7 @@ public class JournalDataSource
result.add(journal); result.add(journal);
} //}
} while (cursor.moveToNext()); } while (cursor.moveToNext());
@ -262,7 +270,7 @@ public class JournalDataSource
} }
public ArrayList<JournalSemiFullData> GetJournalList(String superJournalName, int count) public ArrayList<JournalSemiFullData> GetJournalListMain(int count)
{ {
//Xperimental - need to create a real superjournal //Xperimental - need to create a real superjournal
@ -276,7 +284,8 @@ public class JournalDataSource
{ {
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION }, null, null, null, null, null, null); BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION,
BashgidSqliteHelper.COLUMN_HIDDEN, BashgidSqliteHelper.COLUMN_GEOCATEGORY, BashgidSqliteHelper.COLUMN_MAIN}, BashgidSqliteHelper.COLUMN_MAIN + "=1", null, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
@ -287,11 +296,11 @@ public class JournalDataSource
{ {
String name = cursor.getString(0); //String name = cursor.getString(0);
if (name.equals("Universities") || name.equals("hotels")) //Xperimental //if (name.equals("Universities") || name.equals("hotels")) //Xperimental
{ //{
JournalSemiFullData journal = new JournalSemiFullData(new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2))); JournalSemiFullData journal = new JournalSemiFullData(new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getInt(5)));
ArrayList<String> articleArr; ArrayList<String> articleArr;
@ -307,8 +316,10 @@ public class JournalDataSource
for (String article : articleArr) for (String article : articleArr)
{ {
if (!MainActivity.getInstance().articleDataSource.InnerArticleIsHidden(article, database))
{
journal.articleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database)); journal.articleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database));
}
} }
journal.title = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.title, database); journal.title = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.title, database);
@ -316,7 +327,7 @@ public class JournalDataSource
result.add(journal); result.add(journal);
} //}
} while (cursor.moveToNext()); } while (cursor.moveToNext());
@ -337,6 +348,54 @@ public class JournalDataSource
return result; return result;
} }
public ArrayList<JournalRecordData> GetGeoJournalList()
{
ArrayList<JournalRecordData> result = new ArrayList<JournalRecordData>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TITLE, BashgidSqliteHelper.COLUMN_DESCRIPTION,
BashgidSqliteHelper.COLUMN_HIDDEN, BashgidSqliteHelper.COLUMN_GEOCATEGORY, BashgidSqliteHelper.COLUMN_MAIN}, BashgidSqliteHelper.COLUMN_GEOCATEGORY + "=1", null, null, null, null, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
JournalRecordData journal = new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getInt(5));
journal.title = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.title, database);
//journal.description = MainActivity.getInstance().translationDataSource.TryTranslateText(journal.description, database);
result.add(journal);
} while (cursor.moveToNext());
}
cursor.close();
cursor = null;
}
}
finally
{
dbHelper.close();
}
}
return result;
}
public JournalSemiFullData InnerGetJournalSemiFullData(String name, SQLiteDatabase database, String startAfterArticleName, int count) public JournalSemiFullData InnerGetJournalSemiFullData(String name, SQLiteDatabase database, String startAfterArticleName, int count)
{ {
@ -355,9 +414,11 @@ public class JournalDataSource
for (String article : articleArr) for (String article : articleArr)
{ {
//if (!MainActivity.getInstance().articleDataSource.InnerArticleIsHidden(article, database))
//{
intermediateArticleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database)); intermediateArticleArr.add(MainActivity.getInstance().articleDataSource.InnerGetArticleShortData(article, database));
//
} }
Collections.sort(intermediateArticleArr, new ArticleManager.ArticleShortDataTimeSortComparator()); Collections.sort(intermediateArticleArr, new ArticleManager.ArticleShortDataTimeSortComparator());
@ -505,7 +566,7 @@ public class JournalDataSource
JournalRecordData result = null; JournalRecordData result = null;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_JOURNAL, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TITLE,
BashgidSqliteHelper.COLUMN_DESCRIPTION }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null); BashgidSqliteHelper.COLUMN_DESCRIPTION, BashgidSqliteHelper.COLUMN_HIDDEN, BashgidSqliteHelper.COLUMN_GEOCATEGORY, BashgidSqliteHelper.COLUMN_MAIN }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
@ -513,7 +574,7 @@ public class JournalDataSource
{ {
cursor.moveToFirst(); cursor.moveToFirst();
result = new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2)); result = new JournalRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getInt(3), cursor.getInt(4), cursor.getInt(5));
} }
cursor.close(); cursor.close();
cursor = null; cursor = null;

View File

@ -49,7 +49,7 @@ public class PhotoDataSource
database.update(BashgidSqliteHelper.TABLE_PHOTO, values, BashgidSqliteHelper.COLUMN_IMAGE_URL + " = " +"\"" + recordData.imageUrl +"\"", null); database.update(BashgidSqliteHelper.TABLE_PHOTO, values, BashgidSqliteHelper.COLUMN_IMAGE_URL + " = " +"\"" + recordData.imageUrl +"\"", null);
} }
Log.e("a", "aaa4"); //Log.e("a", "aaa4");
} finally } finally
{ {
dbHelper.close(); dbHelper.close();

View File

@ -3,11 +3,7 @@ package fishrungames.bashgid.core.db;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Locale; import java.util.Locale;
import fishrungames.bashgid.MainActivity;
import fishrungames.bashgid.core.AlbumManager;
import fishrungames.bashgid.core.AlbumManager.AlbumFullData;
import fishrungames.bashgid.core.AlbumManager.AlbumRecordData;
import fishrungames.bashgid.core.AlbumManager.AlbumShortData;
import fishrungames.bashgid.core.TranslationManager.TranslationRecordData; import fishrungames.bashgid.core.TranslationManager.TranslationRecordData;
import android.content.ContentValues; import android.content.ContentValues;
@ -15,7 +11,7 @@ import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
public class TranslationDataSource public class TranslationDataSource
{ {
@ -43,6 +39,10 @@ public class TranslationDataSource
values.put(BashgidSqliteHelper.COLUMN_TEXT_EN, recordData.textEn); values.put(BashgidSqliteHelper.COLUMN_TEXT_EN, recordData.textEn);
values.put(BashgidSqliteHelper.COLUMN_TEXT_RU, recordData.textRu); values.put(BashgidSqliteHelper.COLUMN_TEXT_RU, recordData.textRu);
values.put(BashgidSqliteHelper.COLUMN_TEXT_ZH, recordData.textZh); values.put(BashgidSqliteHelper.COLUMN_TEXT_ZH, recordData.textZh);
values.put(BashgidSqliteHelper.COLUMN_TEXT_EN_UP, recordData.textEnUp);
values.put(BashgidSqliteHelper.COLUMN_TEXT_RU_UP, recordData.textRuUp);
values.put(BashgidSqliteHelper.COLUMN_TEXT_ZH_UP, recordData.textZhUp);
if (!innerIsTranslationAlreadyExist(recordData.name, database)) if (!innerIsTranslationAlreadyExist(recordData.name, database))
{ {
@ -82,6 +82,72 @@ public class TranslationDataSource
return name; return name;
} }
} }
public ArrayList<String> SearchRussian(String partString)
{
ArrayList<String> result = new ArrayList<String>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
result = innerGetTranslationNameByPartString_Russian(partString, database);
} finally
{
dbHelper.close();
}
}
return result;
}
public ArrayList<String> SearchEnglish(String partString)
{
ArrayList<String> result = new ArrayList<String>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
result = innerGetTranslationNameByPartString_English(partString, database);
} finally
{
dbHelper.close();
}
}
return result;
}
public ArrayList<String> SearchChinese(String partString)
{
ArrayList<String> result = new ArrayList<String>();
SQLiteDatabase database = dbHelper.getWritableDatabase();
if (database != null)
{
try
{
result = innerGetTranslationNameByPartString_Chinese(partString, database);
} finally
{
dbHelper.close();
}
}
return result;
}
/* /*
public boolean IsTranslationAlreadyExist(String name) public boolean IsTranslationAlreadyExist(String name)
{ {
@ -371,14 +437,97 @@ public class TranslationDataSource
TranslationRecordData result = null; TranslationRecordData result = null;
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_TRANSLATION, new String[] { BashgidSqliteHelper.COLUMN_NAME, BashgidSqliteHelper.COLUMN_TEXT_EN, Cursor cursor = database.query(BashgidSqliteHelper.TABLE_TRANSLATION, new String[] { BashgidSqliteHelper.COLUMN_NAME,
BashgidSqliteHelper.COLUMN_TEXT_RU, BashgidSqliteHelper.COLUMN_TEXT_ZH }, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null); BashgidSqliteHelper.COLUMN_TEXT_EN, BashgidSqliteHelper.COLUMN_TEXT_RU, BashgidSqliteHelper.COLUMN_TEXT_ZH,
BashgidSqliteHelper.COLUMN_TEXT_EN_UP, BashgidSqliteHelper.COLUMN_TEXT_RU_UP, BashgidSqliteHelper.COLUMN_TEXT_ZH_UP}, BashgidSqliteHelper.COLUMN_NAME + "=?", new String[] { name }, null, null, null, null);
if (cursor != null) if (cursor != null)
{ {
if (cursor.moveToFirst()) if (cursor.moveToFirst())
{ {
result = new TranslationRecordData(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3)); result = new TranslationRecordData(
cursor.getString(0),
cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4),
cursor.getString(5),
cursor.getString(6));
}
cursor.close();
cursor = null;
}
return result;
}
public ArrayList<String> innerGetTranslationNameByPartString_Russian(String partString, SQLiteDatabase database)
{
ArrayList<String> result = new ArrayList<String>();
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_TRANSLATION, new String[] { BashgidSqliteHelper.COLUMN_NAME}, BashgidSqliteHelper.COLUMN_TEXT_RU_UP + " LIKE ?", new String[] { "%" + partString + "%" }, null, null, null, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
result.add(cursor.getString(0));
} while (cursor.moveToNext());
}
cursor.close();
cursor = null;
}
return result;
}
public ArrayList<String> innerGetTranslationNameByPartString_English(String partString, SQLiteDatabase database)
{
ArrayList<String> result = new ArrayList<String>();
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_TRANSLATION, new String[] { BashgidSqliteHelper.COLUMN_NAME}, BashgidSqliteHelper.COLUMN_TEXT_EN_UP + " LIKE ?", new String[] { "%" + partString + "%" }, null, null, null, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
result.add(cursor.getString(0));
} while (cursor.moveToNext());
}
cursor.close();
cursor = null;
}
return result;
}
public ArrayList<String> innerGetTranslationNameByPartString_Chinese(String partString, SQLiteDatabase database)
{
ArrayList<String> result = new ArrayList<String>();
Cursor cursor = database.query(BashgidSqliteHelper.TABLE_TRANSLATION, new String[] { BashgidSqliteHelper.COLUMN_NAME}, BashgidSqliteHelper.COLUMN_TEXT_ZH_UP + " LIKE ?", new String[] { "%" + partString + "%" }, null, null, null, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
result.add(cursor.getString(0));
} while (cursor.moveToNext());
} }
cursor.close(); cursor.close();