Skip to content

Commit

Permalink
Added post type filter logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Eilers Smith committed Jan 25, 2014
1 parent 5f3b176 commit f515a50
Show file tree
Hide file tree
Showing 14 changed files with 234 additions and 25 deletions.
1 change: 1 addition & 0 deletions model/model.ecore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="EReference2" upperBound="-1"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="is_male" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="is_teen" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="post_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Comment">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="post_title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
Expand Down
4 changes: 4 additions & 0 deletions model/model.ecorediag
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
<element xmi:type="ecore:EAttribute" href="model.ecore#//Post/is_teen"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_My_P4XdPEeOzk7o48Vk8Sg"/>
</children>
<children xmi:type="notation:Node" xmi:id="_E4Id4IYQEeOIAINjJ9O36Q" type="2001">
<element xmi:type="ecore:EAttribute" href="model.ecore#//Post/post_type"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_E4Id4YYQEeOIAINjJ9O36Q"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_Jss88UaSEeOAhZ6b1CwEtg"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_Jss88kaSEeOAhZ6b1CwEtg"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_Jss880aSEeOAhZ6b1CwEtg"/>
Expand Down
2 changes: 1 addition & 1 deletion src-gen/com/sobremesa/waywt/contentprovider/Provider.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public class Provider extends ContentProvider {
private static final String TAG = "com.sobremesa.waywt.contentprovider.Provider";
Expand Down
4 changes: 2 additions & 2 deletions src-gen/com/sobremesa/waywt/database/Database.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public class Database extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mdsdacpdatabase.db";
private static final int DATABASE_VERSION = 21;
private static final int DATABASE_VERSION = 25;

public Database(final Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public interface CommentTable {
String TABLE_NAME = "comment";
Expand Down
12 changes: 7 additions & 5 deletions src-gen/com/sobremesa/waywt/database/tables/PostTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public interface PostTable {
String TABLE_NAME = "post";
Expand All @@ -21,20 +21,22 @@ public interface PostTable {
String TITLE = "title";
String IS_MALE = "is_male";
String IS_TEEN = "is_teen";
String POST_TYPE = "post_type";

String[] ALL_COLUMNS = new String[]{ID, UPS, DOWNS, AUTHOR, CREATED,
PERMALINK, TITLE, IS_MALE, IS_TEEN};
PERMALINK, TITLE, IS_MALE, IS_TEEN, POST_TYPE};

String SQL_CREATE = "CREATE TABLE " + TABLE_NAME + " ( " + ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT" + "," + UPS + " INTEGER"
+ "," + DOWNS + " INTEGER" + "," + AUTHOR + " TEXT" + "," + CREATED
+ " INTEGER" + "," + PERMALINK + " TEXT" + "," + TITLE + " TEXT"
+ "," + IS_MALE + " INTEGER" + "," + IS_TEEN + " INTEGER" + " )";
+ "," + IS_MALE + " INTEGER" + "," + IS_TEEN + " INTEGER" + ","
+ POST_TYPE + " INTEGER" + " )";

String SQL_INSERT = "INSERT INTO " + TABLE_NAME + " (" + UPS + "," + DOWNS
+ "," + AUTHOR + "," + CREATED + "," + PERMALINK + "," + TITLE
+ "," + IS_MALE + "," + IS_TEEN
+ ") VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )";
+ "," + IS_MALE + "," + IS_TEEN + "," + POST_TYPE
+ ") VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? )";

String SQL_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME;

Expand Down
2 changes: 1 addition & 1 deletion src-gen/com/sobremesa/waywt/model/Comment.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public class Comment {

Expand Down
23 changes: 22 additions & 1 deletion src-gen/com/sobremesa/waywt/model/Post.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* Generated Class. Do not modify!
*
* @author MDSDACP Team - [email protected]
* @date 2014.01.06
* @date 2014.01.25
*/
public class Post {

Expand All @@ -23,6 +23,7 @@ public class Post {
private java.lang.String title;
private int is_male;
private int is_teen;
private int post_type;

private final ContentValues values = new ContentValues();

Expand All @@ -40,6 +41,7 @@ public Post(final Cursor cursor) {
setTitle(cursor.getString(cursor.getColumnIndex(PostTable.TITLE)));
setIs_male(cursor.getInt(cursor.getColumnIndex(PostTable.IS_MALE)));
setIs_teen(cursor.getInt(cursor.getColumnIndex(PostTable.IS_TEEN)));
setPost_type(cursor.getInt(cursor.getColumnIndex(PostTable.POST_TYPE)));

}

Expand Down Expand Up @@ -214,6 +216,25 @@ public int getIs_teen() {
return this.is_teen;
}

/**
* Set post_type and set content value
*
* @param post_type from type int
*/
public void setPost_type(final int post_type) {
this.post_type = post_type;
this.values.put(PostTable.POST_TYPE, post_type);
}

/**
* Get post_type
*
* @return post_type from type int
*/
public int getPost_type() {
return this.post_type;
}

/**
* Get ContentValues
*
Expand Down
2 changes: 1 addition & 1 deletion src-gen/gen.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
gen-count=10
gen-count=11
55 changes: 54 additions & 1 deletion src/com/sobremesa/waywt/activities/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.sobremesa.waywt.contentprovider.Provider;
import com.sobremesa.waywt.database.tables.PostTable;
import com.sobremesa.waywt.dialog.LoginDialog;
import com.sobremesa.waywt.enums.PostType;
import com.sobremesa.waywt.enums.SortByType;
import com.sobremesa.waywt.fragments.CommentFragment;
import com.sobremesa.waywt.fragments.LoadingFragment;
Expand Down Expand Up @@ -473,7 +474,59 @@ public void fetchPostData() {

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, PostTable.IS_MALE + "=? AND " + PostTable.IS_TEEN + "=?", new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0"}, PostTable.CREATED + " DESC");

boolean seeWaywtPosts = UserUtil.getSeeWaywtPosts();
boolean seeOutfitFeedbackPosts = UserUtil.getSeeOutfitFeedbackPosts();
boolean seeRecentPurchasesPosts = UserUtil.getSeeRecentPurchasesPosts();

String query = PostTable.IS_MALE + "=? AND " + PostTable.IS_TEEN + "=?";

int state = 0;

if( !seeWaywtPosts && !seeOutfitFeedbackPosts && seeRecentPurchasesPosts )
state = 1;
else if( !seeWaywtPosts && seeOutfitFeedbackPosts && !seeRecentPurchasesPosts )
state = 2;
else if( !seeWaywtPosts && seeOutfitFeedbackPosts && seeRecentPurchasesPosts )
state = 3;
else if( seeWaywtPosts && !seeOutfitFeedbackPosts && !seeRecentPurchasesPosts )
state = 4;
else if( seeWaywtPosts && !seeOutfitFeedbackPosts && seeRecentPurchasesPosts )
state = 5;
else if( seeWaywtPosts && seeOutfitFeedbackPosts && !seeRecentPurchasesPosts )
state = 6;
else
state = 7;

switch( state )
{
case 0:
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0"}, PostTable.CREATED + " DESC");
case 1:
query += " AND " + PostTable.POST_TYPE + " =? ";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.RECENT_PURCHASES.ordinal()+""}, PostTable.CREATED + " DESC");
case 2:
query += " AND " + PostTable.POST_TYPE + " =? ";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.OUTFIT_FEEDBACK.ordinal()+""}, PostTable.CREATED + " DESC");
case 3:
query += " AND (" + PostTable.POST_TYPE + " =? OR " + PostTable.POST_TYPE + "=? )";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.RECENT_PURCHASES.ordinal()+"", PostType.OUTFIT_FEEDBACK.ordinal()+""}, PostTable.CREATED + " DESC");
case 4:
query += " AND " + PostTable.POST_TYPE + " =? ";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.WAYWT.ordinal()+""}, PostTable.CREATED + " DESC");
case 5:
query += " AND (" + PostTable.POST_TYPE + " =? OR " + PostTable.POST_TYPE + "=? )";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.RECENT_PURCHASES.ordinal()+"", PostType.WAYWT.ordinal()+""}, PostTable.CREATED + " DESC");
case 6:
query += " AND (" + PostTable.POST_TYPE + " =? OR " + PostTable.POST_TYPE + "=? )";
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0", PostType.WAYWT.ordinal()+"", PostType.OUTFIT_FEEDBACK.ordinal()+""}, PostTable.CREATED + " DESC");
default:
case 7:
return new CursorLoader(this, Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, query, new String[] { UserUtil.getIsMale() ? "1" : "0", UserUtil.getIsTeen() ? "1" : "0"}, PostTable.CREATED + " DESC");

}


}


Expand Down
29 changes: 29 additions & 0 deletions src/com/sobremesa/waywt/enums/PostType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.sobremesa.waywt.enums;

import java.util.HashMap;

public enum PostType {
INVALID(0), WAYWT(1), OUTFIT_FEEDBACK(2), RECENT_PURCHASES(3);

private static final HashMap<Integer, PostType> idToTypeMap = new HashMap<Integer, PostType>();
static {
for (PostType type : values()) {
idToTypeMap.put(type.getId(), type);
}
}

private int mId;

private PostType(int id) {
mId = id;
}

public int getId() {
return mId;
}

public String getIdString() {
return Integer.toString(mId);
}

}
81 changes: 69 additions & 12 deletions src/com/sobremesa/waywt/service/PostService.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import com.sobremesa.waywt.contentprovider.Provider;
import com.sobremesa.waywt.database.tables.PostTable;
import com.sobremesa.waywt.enums.PostType;
import com.sobremesa.waywt.service.BaseService;
import com.sobremesa.waywt.service.RemoteObject;
import com.sobremesa.waywt.service.clients.PostServiceClient;
Expand Down Expand Up @@ -66,6 +67,7 @@ public String getIdentifier() {

public class RemoteRedditPost extends RemoteObject {
public String kind;
public PostType postType;
public RemoteRedditPostData data;

@Override
Expand Down Expand Up @@ -204,7 +206,10 @@ protected void onHandleIntent(Intent intent) {
while (iter.hasNext()) {
RemoteRedditPost post = iter.next();

if ( isNotValidPost(mIsMale, mIsTeen, post) || totalPosts.contains(post) )
PostType postType = getPostType(mIsMale, mIsTeen, post);
post.postType = postType;

if ( postType == PostType.INVALID || totalPosts.contains(post) )
iter.remove();
}

Expand Down Expand Up @@ -241,7 +246,10 @@ protected void onHandleIntent(Intent intent) {
while (iter.hasNext()) {
RemoteRedditPost post = iter.next();

if ( isNotValidPost(mIsMale, mIsTeen, post) || totalPosts.contains(post) )
PostType postType = getPostType(mIsMale, mIsTeen, post);
post.postType = postType;

if ( postType == PostType.INVALID || totalPosts.contains(post) )
iter.remove();
}

Expand Down Expand Up @@ -277,7 +285,10 @@ protected void onHandleIntent(Intent intent) {
while (iter.hasNext()) {
RemoteRedditPost post = iter.next();

if ( isNotValidPost(mIsMale, mIsTeen, post) || totalPosts.contains(post) )
PostType postType = getPostType(mIsMale, mIsTeen, post);
post.postType = postType;

if ( postType == PostType.INVALID || totalPosts.contains(post) )
iter.remove();
}

Expand Down Expand Up @@ -315,7 +326,10 @@ protected void onHandleIntent(Intent intent) {
while (iter.hasNext()) {
RemoteRedditPost post = iter.next();

if ( isNotValidPost(mIsMale, mIsTeen, post) || totalPosts.contains(post) )
PostType postType = getPostType(mIsMale, mIsTeen, post);
post.postType = postType;

if ( postType == PostType.INVALID || totalPosts.contains(post) )
iter.remove();
}

Expand All @@ -325,7 +339,6 @@ protected void onHandleIntent(Intent intent) {
++i;
}

Log.d("total ffa", totalPosts.size()+"");
if (totalPosts != null && totalPosts.size() > 0) {
// synchronize!
Cursor localRecCursor = getContext().getContentResolver().query(Provider.POST_CONTENT_URI, PostTable.ALL_COLUMNS, PostTable.IS_MALE + "=? AND " + PostTable.IS_TEEN + "=?" , new String[] { mIsMale ? "1":"0", mIsTeen ? "1":"0" }, null);
Expand All @@ -344,24 +357,68 @@ protected void onHandleIntent(Intent intent) {
}
}

private boolean isNotValidPost( boolean isMale, boolean isTeen, RemoteRedditPost post )
private PostType getPostType( boolean isMale, boolean isTeen, RemoteRedditPost post )
{

if( isMale )
{
if( !isTeen )
return !post.data.domain.equals("self.malefashionadvice") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("phone") || post.data.title.toLowerCase().contains("interest") || post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("recent purchases"));
{
if( !post.data.domain.equals("self.malefashionadvice") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("phone") || post.data.title.toLowerCase().contains("interest") || post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("recent purchases")) )
return PostType.INVALID;

if( post.data.title.toLowerCase().contains("waywt") )
return PostType.WAYWT;
else if( post.data.title.toLowerCase().contains("outfit feedback") )
return PostType.OUTFIT_FEEDBACK;
else if( post.data.title.toLowerCase().contains("recent purchases") )
return PostType.RECENT_PURCHASES;
else
return PostType.INVALID;
}
else
return !post.data.domain.equals("self.TeenMFA") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest")|| post.data.title.toLowerCase().contains("top")|| (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("recent purchases"));

{
if( !post.data.domain.equals("self.TeenMFA") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest")|| post.data.title.toLowerCase().contains("top")|| (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("recent purchases")) )
return PostType.INVALID;

if( post.data.title.toLowerCase().contains("waywt") )
return PostType.WAYWT;
else if( post.data.title.toLowerCase().contains("outfit feedback") )
return PostType.OUTFIT_FEEDBACK;
else if( post.data.title.toLowerCase().contains("recent purchases") )
return PostType.RECENT_PURCHASES;
else
return PostType.INVALID;
}
}
else
{
if( !isTeen )
return !post.data.domain.equals("self.femalefashionadvice") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest")|| post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("theme") && !post.data.title.toLowerCase().contains("recent purchases"));
{
if( !post.data.domain.equals("self.femalefashionadvice") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest")|| post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("theme") && !post.data.title.toLowerCase().contains("recent purchases")) )
return PostType.INVALID;

if( post.data.title.toLowerCase().contains("waywt") )
return PostType.WAYWT;
else if( post.data.title.toLowerCase().contains("outfit feedback") )
return PostType.OUTFIT_FEEDBACK;
else if( post.data.title.toLowerCase().contains("recent purchases") )
return PostType.RECENT_PURCHASES;
else
return PostType.INVALID;
}
else
{
return !post.data.domain.equals("self.TeenFFA") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest") || post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("recent purchases"));
if( !post.data.domain.equals("self.TeenFFA") || post.data.title.toLowerCase().contains("announcement") || post.data.title.toLowerCase().contains("interest") || post.data.title.toLowerCase().contains("top") || (!post.data.title.toLowerCase().contains("waywt") && !post.data.title.toLowerCase().contains("outfit feedback") && !post.data.title.toLowerCase().contains("recent purchases")) )
return PostType.INVALID;

if( post.data.title.toLowerCase().contains("waywt") )
return PostType.WAYWT;
else if( post.data.title.toLowerCase().contains("outfit feedback") )
return PostType.OUTFIT_FEEDBACK;
else if( post.data.title.toLowerCase().contains("recent purchases") )
return PostType.RECENT_PURCHASES;
else
return PostType.INVALID;
}
}
}
Expand Down
Loading

0 comments on commit f515a50

Please sign in to comment.